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, а то не работает. Та же проблема, при клике на статью, на главной странице, не выводиться статья, а пустая страница. Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас