|
Решил написать данную статью потому, что уже было пару вопросов на тему
"Почему не работает чпу для сторонних модулей на версии 5,5" и хотелось
бы в кратце описать причину.
В версии 5,5 движка DLE была не много изменена структура навигации, и с этой целью разработчики не много переработали файл .htaccess, и соответственно модель построения чпу движка изменилась. Теперь, при добавление на сайт сторонних модулей с поддержкой чпу, придётся соблюдать некое правило. Приведу листинг файла .htaccess для версии 5,5: <!-- code1 -->
<!--
ecode1
-->
RewriteEngine On
<!--
ecode2
-->
# Редиректы RewriteRule ^page/(.*)$ index.php?cstart=$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 ^([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2&day=$3 [L] RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&day=$3&cstart=$4 [L] # За весь месяц RewriteRule ^([0-9]{4})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2 [L] RewriteRule ^([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&cstart=$3 [L] # Вывод за весь год RewriteRule ^([0-9]{4})(/?)+$ index.php?year=$1 [L] RewriteRule ^([0-9]{4})/page/([0-9]+)(/?)+$ index.php?year=$1&cstart=$2 [L] # вывод для отдельного юзера RewriteRule ^user/([^/]*)(/?)+$ index.php?subaction=userinfo&user=$1 [L] RewriteRule ^user/([^/]*)/page/([0-9]+)(/?)+$ index.php?subaction=userinfo&user=$1&cstart=$2 [L] # вывод непрочитанных статей RewriteRule ^newposts(/?)+$ index.php?subaction=newposts [L] RewriteRule ^newposts/page/([0-9]+)(/?)+$ index.php?subaction=newposts&cstart=$1 [L] # Статистические страницы RewriteRule ^static/(.*).html(/?)+$ index.php?do=static&page=$1 [L] # вывод избранных статей RewriteRule ^favorites(/?)+$ index.php?do=favorites [L] RewriteRule ^favorites/page/([0-9]+)(/?)+$ index.php?do=favorites&cstart=$1 [L] RewriteRule ^statistics.html$ index.php?do=stats [L] RewriteRule ^addnews.html$ index.php?do=addnews [L] RewriteRule ^rss.xml$ engine/rss.php [L] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^.]+)/page/([0-9]+)(/?)+$ index.php?do=cat&category=$1&cstart=$2 [L] RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^<]+)/rss.xml$ engine/rss.php?do=cat&category=$1 [L] RewriteRule ^([^/]+).html$ index.php?do=static&page=$1 [L] <!-- code2 --> Из всего листинга нас интересует самый последний блок, вот этот: <!-- code1 -->
<!--
ecode1
-->
RewriteCond %{REQUEST_FILENAME} !-d
<!--
ecode2
-->
RewriteRule ^([^.]+)/page/([0-9]+)(/?)+$ index.php?do=cat&category=$1&cstart=$2 [L] RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^<]+)/rss.xml$ engine/rss.php?do=cat&category=$1 [L] RewriteRule ^([^/]+).html$ index.php?do=static&page=$1 [L] <!-- code2 --> Если раньше можно было добавить строки обработки url адресов в любое место файла, после строки RewriteEngine On, то теперь приходится учитывать ещё одно небольшое ограничение. Когда вы будете редактировать данный файл, добавляя при этом новые строки для замены url, вам придётся их вписывать до приведённого выше блока, иначе чпу работать не будет.
|
Партнеры Опрос
Как вам новый дизайн?
|