Fucktor 5 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 (изменено) Как убрать ID публикации из URL новости: 1. Открываем файл /engine/engine.php и ищем код: // ################ Новость целиком ################# if ($subaction != '' or $newsid) { if (! $newsid) $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 0,1"; else $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post where id = '$newsid'"; if ($subaction == '') $subaction = "showfull"; } } заменяем на: // ################ Новость целиком ################# if ($subaction != '' or $_GET['newsid']) { if (! $_GET['newsid']) $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 0,1"; else $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post where alt_name = '{$_GET['newsid']}'"; if ($subaction == '') $subaction = "showfull"; } } 2. В файлах /engine/modules/show.short.php, show.custom.php, topnews.php ищем: if( $row['category'] and $config['seo_type'] == 2 ) { $full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html"; } else { $full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html"; } } else { $full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html"; } } else { $full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id']; } и заменяем на: if( $row['category'] and $config['seo_type'] == 2 ) { $full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['alt_name'] . ".html"; } else { $full_link = $config['http_home_url'] . $row['alt_name'] . ".html"; } } else { $full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html"; } } else { $full_link = $config['http_home_url'] . "index.php?newsid=" . $row['alt_name']; } 3. Открываем файл /.htaccess и ищем: RewriteRule ^([^.]+)/([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2 [L] заменяем на: RewriteRule ^([^.]+)/(.*).html(/?)+$ index.php?newsid=$2 [L] ищем: RewriteRule ^([0-9]+)-(.*).html(/?)+$ index.php?newsid=$1 [L] заменяем на: RewriteRule ^(.*).html(/?)+$ index.php?newsid=$1 [L] вырезаем и вставляем в самый конец файла следующий код: # Сам пост RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day= $3&news_page=$4&cstart=$5&news_name=$6 [L] RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day= $3&news_page=$4&news_name=$5 [L] RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$ engine/print.php?subaction=showfull&year=$1&month=$2&day= $3&news_page=$4&news_name=$5 [L] RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day= $3&news_name=$4 [L] RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$4&news_page=$2&cstart=$3 [L] RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$2 [L] RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$2&newsid=$3 [L] RewriteRule ^([^.]+)/(.*).html(/?)+$ index.php?newsid=$2 [L] RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$1&cstart=$2 [L] RewriteRule ^page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2&news_page=$1 [L] RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$1&newsid=$2 [L] RewriteRule ^(.*).html(/?)+$ index.php?newsid=$1 [L] 4. Что бы со старых типов ссылок шло перенаправление на ссылки нового вида необходимо открыть файл /engine/modules/show.full.php, найти код: @header( "HTTP/1.0 404 Not Found" ); msgbox( $lang['all_err_1'], $lang['news_err_12'] ); } и заменить на: preg_match("/([0-9]*)-(.+?).html$/i", $_SERVER["REQUEST_URI"], $res); if(intval($res[1]) > 0){ header('HTTP/1.1 301 Moved Permanently'); header('Location: '.$config['home_url'].$res['2'].'.html'); exit; } } найти: $news_found = TRUE; ниже добавить: if($config['allow_alt_url'] == "yes"){ preg_match( '/'.$row['id'].'-(.*?).html/is' , $_SERVER["REQUEST_URI"] , $parse_alt_name ); if($row['alt_name'] != trim($parse_alt_name[1]) )$news_found = FALSE; if( !$news_found ) break; } Провёл выше указанные операции, ссылки стали без ID, но возникла проблема в DLE 9.2 полная новость не отображается Помогите пожалуйста решить сию проблему. Вот сайт где возникла проблема http://www.rapcorp.net/ при переходе на полную новость страница без новости // ################ Новость целиком ################# if ($subaction != '' or $_GET['newsid']) { if (! $_GET['newsid']) $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 0,1"; else $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post where alt_name = '{$_GET['newsid']}'"; if ($subaction == '') $subaction = "showfull"; } } Вот что-то тут походу изменить нужно. Изменено 18 апреля 2011 пользователем Fucktor 4 Цитата Ссылка на сообщение Поделиться на других сайтах
ShapeShifter 13 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 Проблема решена. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Fucktor 5 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 Автор Спасибо, всё заработало 1 Цитата Ссылка на сообщение Поделиться на других сайтах
veb74 10 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 Отличный хак. Совместно с форумом на DLE косяков не будет? Какие недостатки в себе несёт использование, помимо того, что наверное ссылки все в поисковиках заново будут переиндексироваться? ЗЫ я не понимаю, зачем этот айди в адресной строке вообще нужен в стандартной сборке?? 1 Цитата Ссылка на сообщение Поделиться на других сайтах
WebSet 74 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 ЗЫ я не понимаю, зачем этот айди в адресной строке вообще нужен в стандартной сборке?? чтобы случайно не получилось дублей + гугл ньюс требует, чтобы был ID. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
DeeMon 73 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 Как убрать ID публикации из URL новости Нафига? Я вот видел народ наоборот убирает из ЧПУ название новостей, а оставляет чисто id, выглядит типа http://sait.ru/news/123.html 1 Цитата Ссылка на сообщение Поделиться на других сайтах
veb74 10 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 Дубли не появятся, если самому вбивать название ЧПУ. А что за гугль-ньюс? Я вот видел народ наоборот убирает из ЧПУ название новостей, а оставляет чисто id, выглядит типа http://sait.ru/news/123.html и доменное имя сменить на айпи живем ведь в век цыфровых технологий!! 1 Цитата Ссылка на сообщение Поделиться на других сайтах
prikindel 255 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 Какие недостатки в себе несёт использование поиск по текстовым полям создает в разы большую нагрузку, чем по числовому полю 1 Цитата Ссылка на сообщение Поделиться на других сайтах
DeeMon 73 Опубликовано: 19 апреля 2011 Рассказать Опубликовано: 19 апреля 2011 и доменное имя сменить на айпи живем ведь в век цыфровых технологий!! Не вижу связи... Зато вот ссылочки то короче полчаются 1 Цитата Ссылка на сообщение Поделиться на других сайтах
flake 25 Опубликовано: 19 апреля 2011 Рассказать Опубликовано: 19 апреля 2011 + Нужно добавить проверку alt_name при добавлении новости. Если alt_name существует то скрипт добавляет _2 / _3 / _4 ( test_title_2 ) в конец alt_name. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
J3G 0 Опубликовано: 12 июня 2011 Рассказать Опубликовано: 12 июня 2011 500 Internal Server Error. Почему так выходит? Сделал все правильно, проверил несколько раз Цитата Ссылка на сообщение Поделиться на других сайтах
Generator 0 Опубликовано: 9 октября 2011 Рассказать Опубликовано: 9 октября 2011 500 Internal Server Error. Почему так выходит? Сделал все правильно, проверил несколько раз У меня тоже такое выходит на 9.2., после последнего изменения в .htaccess Цитата Ссылка на сообщение Поделиться на других сайтах
SimRacer 0 Опубликовано: 11 октября 2011 Рассказать Опубликовано: 11 октября 2011 Да, вот и у меня тоже на 9.2 проблема возникла, не показывало полную новость. Хотя на главной вид ссылок действительно изменился и стал без ID, но вот не рабочие они. К тому же, рабочих примеров я еще ниразу не встречал. ShapeShifter и Fucktor, что у вас получилось то? Какая версия ДЛЕ? Покажите как работает. А то такое ощущение, что гон это. Цитата Ссылка на сообщение Поделиться на других сайтах
SimRacer 0 Опубликовано: 11 октября 2011 Рассказать Опубликовано: 11 октября 2011 В прочем... после пары переделок, заработало, только не работают статические страницы. Что я изменил? 1. В шаге №3: # Сам пост RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$4&news_page=$2&cstart=$3 [L] RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$2 [L] RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$2&newsid=$3 [L] RewriteRule ^([^.]+)/(.*).html(/?)+$ index.php?newsid=$2 [L] RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$1&cstart=$2 [L] RewriteRule ^page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2&news_page=$1 [L] RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$1&newsid=$2 [L] RewriteRule ^(.*).html(/?)+$ index.php?newsid=$1 [L] 2. В шаге №4 не стал добавлять этого: if($config['allow_alt_url'] == "yes"){ preg_match( '/'.$row['id'].'-(.*?).html/is' , $_SERVER["REQUEST_URI"] , $parse_alt_name ); if($row['alt_name'] != trim($parse_alt_name[1]) )$news_found = FALSE; if( !$news_found ) break; } Цитата Ссылка на сообщение Поделиться на других сайтах
YXX 0 Опубликовано: 25 октября 2011 Рассказать Опубликовано: 25 октября 2011 (изменено) На 9.4 не работает все страницы идут на главную пример partner.xwara.ru. Почему так может кто подскажет? Изменено 25 октября 2011 пользователем YXX Цитата Ссылка на сообщение Поделиться на других сайтах
dlekz 0 Опубликовано: 1 ноября 2011 Рассказать Опубликовано: 1 ноября 2011 В настройках движка не включали функцию перенаправления? Цитата Ссылка на сообщение Поделиться на других сайтах
MainDdos 1 Опубликовано: 15 декабря 2011 Рассказать Опубликовано: 15 декабря 2011 Подскажите пожалуйста, рабочий хак. Цитата Ссылка на сообщение Поделиться на других сайтах
karen923 0 Опубликовано: 25 декабря 2011 Рассказать Опубликовано: 25 декабря 2011 500 Internal Server Error. Почему так выходит? Сделал все правильно, проверил несколько раз 500 Internal Server Error. Почему так выходит? Сделал все правильно, проверил несколько раз У меня тоже такое выходит на 9.2., после последнего изменения в .htaccess Вероятно у вас ограничение на количество правил в данном файле. Уточните у хотера. Цитата Ссылка на сообщение Поделиться на других сайтах
mr.8pa4 1 Опубликовано: 1 января 2012 Рассказать Опубликовано: 1 января 2012 (изменено) Подскажите а кто нибудь, встречал хак полностью противоположный этому .. чтобы убрать заголовок поста и оставить только ID ? Заранее спасибо. Изменено 1 января 2012 пользователем mr.8pa4 Цитата Ссылка на сообщение Поделиться на других сайтах
prikindel 255 Опубликовано: 2 января 2012 Рассказать Опубликовано: 2 января 2012 mr.8pa4, для этого не нужен хак. это есть в настройках системы - ТИП ЧПУ 3 Цитата Ссылка на сообщение Поделиться на других сайтах
mr.8pa4 1 Опубликовано: 2 января 2012 Рассказать Опубликовано: 2 января 2012 (изменено) /index.php?newsid=1683 это не то ... я о том чтобы было так (к примеру) /1743.html или /1743 или /1743/ чтобы не вставляло ЧПУ URL статьи: а статья определялась и имела переход по одному ID , так как в таких URL мало смысла пример таких урлов http://www.kinopoisk.../1/film/491724/ всяко лучше смотрится чем /1750-sekretnaya-sluzhba-santy-shaluny-protiv-poslushnyh-prep-and-landing-naughty-vs-nice.html Изменено 2 января 2012 пользователем mr.8pa4 Цитата Ссылка на сообщение Поделиться на других сайтах
prikindel 255 Опубликовано: 2 января 2012 Рассказать Опубликовано: 2 января 2012 ну убери в генерации ссылки ALT_NAME и будет тебе счастье, htaccess править не нужно Цитата Ссылка на сообщение Поделиться на других сайтах
WORNEK 0 Опубликовано: 9 января 2012 Рассказать Опубликовано: 9 января 2012 Поделитесь рабочим хаком для DLE 9.5 Цитата Ссылка на сообщение Поделиться на других сайтах
WORNEK 0 Опубликовано: 24 марта 2012 Рассказать Опубликовано: 24 марта 2012 есть тут кто то ? Цитата Ссылка на сообщение Поделиться на других сайтах
nightkon 0 Опубликовано: 28 марта 2012 Рассказать Опубликовано: 28 марта 2012 Поделитесь рабочим хаком для DLE 9.5 Да, не плохо было бы, под DLE 9.5, а то не работает. Та же проблема, при клике на статью, на главной странице, не выводиться статья, а пустая страница. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.