Хак ЧПУ 2 без .html [DLE 10.2 - 10.4]

Тема в разделе "DLE", создана пользователем mishiko, 27 фев 2015.

Информация :
Актуальная версия DataLife Engine 11.1
( Final Release v.11.1 | Скачать DataLife Engine | Скачать 11.1 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 10.0 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. mishiko

    mishiko Создатель

    Регистр.:
    5 сен 2011
    Сообщения:
    255
    Симпатии:
    101
    pudelhtml.png
    Автор: Gameer
    CMS: DLE 10.2 - 10.4

    Описание:
    С помощью этого мини-хака, вы сделаете ссылки у себя на сайте такого вида http://site.com/category/1-news так же вместе идет редирект который позволяет не терять ссылки в индексе а просто переиндексировать страницы.
    Работает только для ссылок с ЧПУ 2!

    Установка :
    1) Открываем /engine/modules/show.short.php находим и удаляем (3 РАЗА) :
    Код:
     . ".html"
    2) Открываем /engine/modules/show.costum.php находим и удаляем (3 РАЗА) :
    Код:
     . ".html"
    3) Открываем /engine/modules/show.full.php находим :
    Код:
    $full_link = $config['http_home_url'] . $c_url . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";
    Меняем на :
    Код:
    $full_link = $config['http_home_url'] . $c_url . "/" . $row['id'] . "-" . $row['alt_name'];
    Далее ищем :
    Код:
    header("Location: {$re_url}{$c_url}/{$row['id']}-{$row['alt_name']}.html");
    Меняем на :
    Код:
    header("Location: {$re_url}{$c_url}/{$row['id']}-{$row['alt_name']}");

    Код:
    header("Location: {$re_url}{$row['id']}-{$row['alt_name']}.html");
    Далее ищем :
    Код:
    $print_link = $config['http_home_url'] . $c_url . "/print:page,1," . $row['id'] . "-" . $row['alt_name'] . ".html";
    Меняем на :
    Код:
    $print_link = $config['http_home_url'] . $c_url . "/print:page,1," . $row['id'] . "-" . $row['alt_name'];
    Далее ищем :
    Код:
    $full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";
    Меняем на :
    Код:
    $full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'];
    Далее ищем :
    Код:
    header("Location: {$re_url}{$row['id']}-{$row['alt_name']}.html");
    Меняем на :
    Код:
    header("Location: {$re_url}{$row['id']}-{$row['alt_name']}");
    Далее ищем :
    Код:
    $print_link = $config['http_home_url'] . "print:page,1," . $row['id'] . "-" . $row['alt_name'] . ".html";
    Меняем на :
    Код:
    $print_link = $config['http_home_url'] . "print:page,1," . $row['id'] . "-" . $row['alt_name'];
    Далее ищем :
    Код:
    $full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html";
    Меняем на :
    Код:
    $full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'];
    Далее ищем :
    Код:
    header("Location: {$re_url}".date( 'Y/m/d/', $row['date'] ).$row['alt_name'].".html");
    Меняем на :
    Код:
    header("Location: {$re_url}".date( 'Y/m/d/', $row['date'] ).$row['alt_name']);
    Далее ищем :
    Код:
    $print_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . "print:page,1," . $row['alt_name'] . ".html";
    Меняем на :
    Код:
    $print_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . "print:page,1," . $row['alt_name'];
    Далее ищем :
    Код:
    $nextpage = "<a href=\"" . $short_link . "page," . $pages . "," . $row['alt_name'] . ".html\">";
    Меняем на :
    Код:
    $nextpage = "<a href=\"" . $short_link . "page," . $pages . "," . $row['alt_name'] . "\">";
    Далее ищем :

    else $prevpage = "<a href=\"" . $short_link . "page," . $pages . "," . $row['alt_name'] . ".html\">";
    Меняем на :
    else $prevpage = "<a href=\"" . $short_link . "page," . $pages . "," . $row['alt_name'] . "\">";
    Далее ищем :
    $listpages .= "<a href=\"" . $short_link . "page," . $j . "," . $row['alt_name'] . ".html\">$j</a> ";
    Меняем на :
    $listpages .= "<a href=\"" . $short_link . "page," . $j . "," . $row['alt_name'] . "\">$j</a> ";
    Далее ищем :
    $listpages .= "<a href=\"" . $short_link . "page," . $j . "," . $row['alt_name'] . ".html\">$j</a> ";
    Меняем на :
    $listpages .= "<a href=\"" . $short_link . "page," . $j . "," . $row['alt_name'] . "\">$j</a> ";
    Далее ищем :
    if( $config['allow_alt_url'] ) $listpages .= $nav_prefix . "<a href=\"" . $short_link . "page," . $anzahl_seiten . "," . $row['alt_name'] . ".html\">{$anzahl_seiten}</a>";
    Меняем на :
    if( $config['allow_alt_url'] ) $listpages .= $nav_prefix . "<a href=\"" . $short_link . "page," . $anzahl_seiten . "," . $row['alt_name'] . "\">{$anzahl_seiten}</a>";
    Далее ищем :
    $replacepage = "<a href=\"" . $short_link . "page," . "\\1" . "," . $row['alt_name'] . ".html\">\\2</a>";
    Меняем на :
    $replacepage = "<a href=\"" . $short_link . "page," . "\\1" . "," . $row['alt_name'] . "\">\\2</a>";
    Далее ищем :
    $rel_full_link = $config['http_home_url'] . get_url( $related['category'] ) . "/" . $related['id'] . "-" . $related['alt_name'] . ".html";
    Меняем на :
    $rel_full_link = $config['http_home_url'] . get_url( $related['category'] ) . "/" . $related['id'] . "-" . $related['alt_name'];
    Далее ищем :
    $rel_full_link = $config['http_home_url'] . $related['id'] . "-" . $related['alt_name'] . ".html";
    Меняем на :
    $rel_full_link = $config['http_home_url'] . $related['id'] . "-" . $related['alt_name'];
    Далее ищем :
    $rel_full_link = $config['http_home_url'] . date( 'Y/m/d/', $related['date'] ) . $related['alt_name'] . ".html";
    Меняем на :
    $rel_full_link = $config['http_home_url'] . date( 'Y/m/d/', $related['date'] ) . $related['alt_name'];
    Далее ищем :
    $comments->build_navigation('navigation.tpl', $link_page . "{page}," . $news_name . ".html#comment", $user_query, $full_link);
    Меняем на :
    $comments->build_navigation('navigation.tpl', $link_page . "{page}," . $news_name . "#comment", $user_query, $full_link);

    4) Открываем файл /engine/modules/addcomments.php находим и удалем (3 РАЗА:(
    Код:
    . ".html"
    5) Открываем файл /engine/inc/editnews.php находим и удаляем (3 РАЗА):
    Код:
    . ".html"
    7) Открываем файл /engine/classes/google.class.php находим и удаляем (4 РАЗА):
    Код:
    . ".html"
    8) Открыть файл /engine/ajax/comments.php найти код :
    Код:
    $comments->build_navigation('navigation.tpl', $link_page . "{page}," . $news_name . ".html#comment", $user_query);
    Заменить на :
    Код:
    $comments->build_navigation('navigation.tpl', $link_page . "{page}," . $news_name . "#comment", $user_query);
    9)
    Открыть файл .htaccess (там где index.php) найти код :
    Код:
    RewriteEngine On
    Ниже вставить :
    Код:
    RewriteBase /
    RewriteRule ^([^.]+)/([0-9]+)-([^.]+)\.html$ index.php?newsid=$2&seourl=$3&seocat=$1 [R=301,L]
    Далее найти :
    Код:
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 [L]
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 [L]
    RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html$ engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 [L]
    RewriteRule ^([^.]+)/([0-9]+)-(.*).html$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]
    Заменить на :
    Код:
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*)$ index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 [L]
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*)$ index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 [L]
    RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*)$ engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 [L]
    RewriteRule ^([^.]+)/([0-9]+)-([^.]+)$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]
    10)
    Зайти в Админ Панель --> Настройка системы и ниже найти "Обрабатывать неверные URL ЧПУ:" сделать включенным и сохранить. Все.[/B]
     
    Последнее редактирование: 27 фев 2015
    alider нравится это.
  2. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.017
    Симпатии:
    680
    Бредовая инструкция :-]
    Смысл править ссылки для ЧПУ 3 когда эта модификация работает только с ссылками ЧПУ 2? Многие моменты можно было просто указать что найти и на что заменить в каких файлах, т.к. ссылки ЧПУ в файлах модулей движка обычно повторяются...

    В общем - бред :popcorn: Хотя может кому-то и пригодится...
     
    palec нравится это.
  3. Gameer

    Gameer Постоялец Нарушитель

    Регистр.:
    25 апр 2014
    Сообщения:
    99
    Симпатии:
    65
    Хочешь сказать что я совсем глуп что не понимаю где ЧПУ 2 или ЧПУ 1 или ЧПУ 3 ? Второе я вовсе не понял. Вот инструкция с моего сайта :
    1) Открываем /engine/modules/show.short.php находим и удаляем (3 РАЗА) :
    Код:
    . ".html"
    2) Открываем /engine/modules/show.costum.php находим и удаляем (3 РАЗА) :
    Код:
    . ".html"
    3) Открываем /engine/modules/show.full.php находим :
    Код:
    $full_link = $config['http_home_url'] . $c_url . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";
    Меняем на :
    Код:
    $full_link = $config['http_home_url'] . $c_url . "/" . $row['id'] . "-" . $row['alt_name'];
    Далее ищем :
    Код:
    header("Location: {$re_url}{$c_url}/{$row['id']}-{$row['alt_name']}.html");
    Меняем на :
    Код:
    header("Location: {$re_url}{$c_url}/{$row['id']}-{$row['alt_name']}");
    Далее ищем :
    Код:
    $print_link = $config['http_home_url'] . $c_url . "/print:page,1," . $row['id'] . "-" . $row['alt_name'] . ".html";
    Меняем на :
    Код:
    $print_link = $config['http_home_url'] . $c_url . "/print:page,1," . $row['id'] . "-" . $row['alt_name'];
    Далее ищем :
    Код:
    $nextpage = "<a href=\"" . $short_link . "page," . $pages . "," . $row['alt_name'] . ".html\">";
    Меняем на :
    Код:
    $nextpage = "<a href=\"" . $short_link . "page," . $pages . "," . $row['alt_name'] . "\">";
    Далее ищем :
    Код:
    else $prevpage = "<a href=\"" . $short_link . "page," . $pages . "," . $row['alt_name'] . ".html\">";
    Меняем на :
    Код:
    else $prevpage = "<a href=\"" . $short_link . "page," . $pages . "," . $row['alt_name'] . "\">";[CODE]
    
    Далее ищем :
    [CODE]$listpages .= "<a href=\"" . $short_link . "page," . $j . "," . $row['alt_name'] . ".html\">$j</a> ";
    Меняем на :
    Код:
    $listpages .= "<a href=\"" . $short_link . "page," . $j . "," . $row['alt_name'] . "\">$j</a> ";[CODE]
    
    Далее ищем :
    [CODE]$listpages .= "<a href=\"" . $short_link . "page," . $j . "," . $row['alt_name'] . ".html\">$j</a> ";
    Меняем на :
    Код:
    $listpages .= "<a href=\"" . $short_link . "page," . $j . "," . $row['alt_name'] . "\">$j</a> ";[CODE]
    
    Далее ищем :
    [CODE]if( $config['allow_alt_url'] ) $listpages .= $nav_prefix . "<a href=\"" . $short_link . "page," . $anzahl_seiten . "," . $row['alt_name'] . ".html\">{$anzahl_seiten}</a>";
    Меняем на :
    Код:
    if( $config['allow_alt_url'] ) $listpages .= $nav_prefix . "<a href=\"" . $short_link . "page," . $anzahl_seiten . "," . $row['alt_name'] . "\">{$anzahl_seiten}</a>";
    Далее ищем :
    Код:
    $replacepage = "<a href=\"" . $short_link . "page," . "\\1" . "," . $row['alt_name'] . ".html\">\\2</a>";
    Меняем на :
    Код:
    $replacepage = "<a href=\"" . $short_link . "page," . "\\1" . "," . $row['alt_name'] . "\">\\2</a>";
    Далее ищем :
    Код:
    $rel_full_link = $config['http_home_url'] . get_url( $related['category'] ) . "/" . $related['id'] . "-" . $related['alt_name'] . ".html";
    Меняем на :
    Код:
    $rel_full_link = $config['http_home_url'] . get_url( $related['category'] ) . "/" . $related['id'] . "-" . $related['alt_name'];
    Далее ищем :
    Код:
    $comments->build_navigation('navigation.tpl', $link_page . "{page}," . $news_name . ".html#comment", $user_query, $full_link);
    Меняем на :
    Код:
    $comments->build_navigation('navigation.tpl', $link_page . "{page}," . $news_name . "#comment", $user_query, $full_link);
    4) Открываем файл /engine/modules/addcomments.php находим и удалем ( 3 РАЗА )
    Код:
    . ".html"
    5) Открываем файл /engine/inc/editnews.php находим и удаляем (3 РАЗА )
    Код:
    . ".html"
    6) Открываем файл /engine/classes/comments.class.php находим и удаляем (3 РАЗА )
    Код:
    . ".html"
    7) Открываем файл /engine/classes/google.class.php находим и удаляем (4 РАЗА )
    Код:
    . ".html"
    8) Открыть файл /engine/ajax/comments.php найти код :
    Код:
    $comments->build_navigation('navigation.tpl', $link_page . "{page}," . $news_name . ".html#comment", $user_query);
    Заменить на :
    Код:
    $comments->build_navigation('navigation.tpl', $link_page . "{page}," . $news_name . "#comment", $user_query);
    9) Открыть файл .htaccess (там где index.php) найти код :
    Код:
    RewriteEngine On
    Ниже вставить :
    Код:
    RewriteBase /
    RewriteRule ^([^.]+)/([0-9]+)-([^.]+)\.html$ index.php?newsid=$2&seourl=$3&seocat=$1 [R=301,L]
    Далее найти :
    Код:
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 [L]
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 [L]
    RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html$ engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 [L]
    RewriteRule ^([^.]+)/([0-9]+)-(.*).html$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]
    Заменить на :
    Код:
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*)$ index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 [L]
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*)$ index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 [L]
    RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*)$ engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 [L]
    RewriteRule ^([^.]+)/([0-9]+)-([^.]+)$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]
    10) Зайти в Админ Панель --> Настройка системы и ниже найти "Обрабатывать неверные URL ЧПУ:" сделать включенным и сохранить. Все.
     
    8Katalin8 нравится это.
  4. mih-81

    mih-81 Постоялец

    Заблокирован
    Регистр.:
    9 июл 2009
    Сообщения:
    107
    Симпатии:
    39
  5. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.017
    Симпатии:
    680
    при замене/удалении . ".html" менять этот кусок на . "/"
     
    mih-81 нравится это.
  6. bork75

    bork75 Д☼брая собака )

    Регистр.:
    21 июн 2008
    Сообщения:
    1.449
    Симпатии:
    716
    Инструкция нереально сложная с виду.
    На днях избавлялся от html и названия, т.е. ссылки стали вида
    sait.ru/post/id

    Может кому пригодится, на этом примере можно и просто от html избавиться.
    http://www.maultalk.com/topic124635.html
     
  7. wimexs

    wimexs Постоялец

    Регистр.:
    21 авг 2009
    Сообщения:
    98
    Симпатии:
    14
    Подскажите пожалуйста, как сделать 301 редирект если страница сначала была без слеша, на конце, а потом добавили слеш.
     
  8. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.017
    Симпатии:
    680
    как пример:
    Код:
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !-f
    RewriteCond %{REQUEST_URI} !/$
    RewriteCond %{REQUEST_URI} !.html$
    RewriteCond %{REQUEST_URI} !.xml$
    RewriteRule (.+) $1/ [R=301,L]
     
    wimexs нравится это.