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"; } } Вот что-то тут походу изменить нужно. Ссылка на сообщение Поделиться на других сайтах
ShapeShifter 13 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 Проблема решена. Ссылка на сообщение Поделиться на других сайтах
Fucktor 5 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 Автор Спасибо, всё заработало Ссылка на сообщение Поделиться на других сайтах
veb74 10 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 Отличный хак. Совместно с форумом на DLE косяков не будет? Какие недостатки в себе несёт использование, помимо того, что наверное ссылки все в поисковиках заново будут переиндексироваться? ЗЫ я не понимаю, зачем этот айди в адресной строке вообще нужен в стандартной сборке?? Ссылка на сообщение Поделиться на других сайтах
WebSet 74 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 ЗЫ я не понимаю, зачем этот айди в адресной строке вообще нужен в стандартной сборке?? чтобы случайно не получилось дублей + гугл ньюс требует, чтобы был ID. Ссылка на сообщение Поделиться на других сайтах
DeeMon 73 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 Как убрать ID публикации из URL новости Нафига? Я вот видел народ наоборот убирает из ЧПУ название новостей, а оставляет чисто id, выглядит типа http://sait.ru/news/123.html Ссылка на сообщение Поделиться на других сайтах
veb74 10 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 Дубли не появятся, если самому вбивать название ЧПУ. А что за гугль-ньюс? Я вот видел народ наоборот убирает из ЧПУ название новостей, а оставляет чисто id, выглядит типа http://sait.ru/news/123.html и доменное имя сменить на айпи живем ведь в век цыфровых технологий!! Ссылка на сообщение Поделиться на других сайтах
prikindel 255 Опубликовано: 18 апреля 2011 Рассказать Опубликовано: 18 апреля 2011 Какие недостатки в себе несёт использование поиск по текстовым полям создает в разы большую нагрузку, чем по числовому полю Ссылка на сообщение Поделиться на других сайтах
DeeMon 73 Опубликовано: 19 апреля 2011 Рассказать Опубликовано: 19 апреля 2011 и доменное имя сменить на айпи живем ведь в век цыфровых технологий!! Не вижу связи... Зато вот ссылочки то короче полчаются Ссылка на сообщение Поделиться на других сайтах
flake 25 Опубликовано: 19 апреля 2011 Рассказать Опубликовано: 19 апреля 2011 + Нужно добавить проверку alt_name при добавлении новости. Если alt_name существует то скрипт добавляет _2 / _3 / _4 ( test_title_2 ) в конец alt_name. Ссылка на сообщение Поделиться на других сайтах
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. Почему так может кто подскажет? Ссылка на сообщение Поделиться на других сайтах
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 ? Заранее спасибо. Ссылка на сообщение Поделиться на других сайтах
prikindel 255 Опубликовано: 2 января 2012 Рассказать Опубликовано: 2 января 2012 mr.8pa4, для этого не нужен хак. это есть в настройках системы - ТИП ЧПУ Ссылка на сообщение Поделиться на других сайтах
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 Ссылка на сообщение Поделиться на других сайтах
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, а то не работает. Та же проблема, при клике на статью, на главной странице, не выводиться статья, а пустая страница. Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Архивировано
Эта тема находится в архиве и закрыта для публикации сообщений.