Сегодня копался, пытаясь разобраться с 301 редиректами слэш на без слэша в категориях на DLE 10.6. Перерыв блог Алаич и несколько других источников, так и не нашел ответа. Полез разбираться самостоятельно – решение оказалось очень простым!
301 редирект слеш на без слеша в категориях DLE 10.6
План статьи [Скрыть]
1. Зайдите на FTP. Откройте файл, находящийся по адресу /engine/engine.php. Найдите следующий кусок кода:
1if
(
$config
[
'allow_alt_url'
] AND
$config
[
'seo_control'
] AND
$category_id
AND
$view_template
!=
"rss"
) {
$re_cat
= get_url(
$category_id
);
if
(
$re_cat
!=
$_GET
[
'category'
] OR
substr
(
$_SERVER
[
'REQUEST_URI'
], - 1, 1 ) !=
'/'
) {
$re_url
=
explode
(
"index.php"
,
strtolower
( 1 ] ) );
$re_url
= reset (
$re_url
); header(
"HTTP/1.0 301 Moved Permanently"
); header(
"Location: {$re_url}{$re_cat}/"
);
die
(
"Redirect"
); } }
2. Замените этот код на:
1/* Пропатченный код URL категорий без слеша НАЧАЛО */
if
(
$config
[
'allow_alt_url'
] AND
$config
[
'seo_control'
] AND
$category_id
AND
$view_template
!=
"rss"
) {
$re
if
(
$re_cat
!=
$_GET
[
'category'
] OR
substr
(
$_SERVER
[
'REQUEST_URI'
], - 1, 1 ) ==
'/'
) {
$re_url
=
explode
(
"index.php"
,
strtolower
( 1 ] ) );
$re_url
= reset (
$re_url
); header(
"HTTP/1.0 301 Moved Permanently"
); header(
"Location: {$re_url}{$re_cat}"
);
die
(
"Redirect"
); } }
/* Пропатченный код URL категорий без слеша КОНЕЦ*/
Изменилось действительно несколько знаков, но они делают то, что нужно.
301 редирект слэш на без слеша в статьях DLE 10.6
1. В корне найдите файл .htaccess, в нем найдите следующий код:
1#Cам пост 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&seourl=1TP4{ ([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&seourl=$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&seourl=$5 [-] )/([0-9]{2})/([0-9]{2})/(.*).html$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4&seourl=$4 [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]+)-(.*).html$ index.php ?newsid=$3&news_page=$1&cstart=$2&seourl=$4 [L] RewriteRule ^page,([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$2&news_page =$3 [L] RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*).html$ engine/print.php?news_page=$1&newsid=$2&seourl=$3 [L ] RewriteRule ^([0-9]+)-(.*).html$ index.php?newsid=$1&seourl=$2 [L]
2. Замените его следующим образом:
1#редирект статей слеш на без слеша RewriteBase / RewriteCond %{HTTP_HOST} (.*) RewriteCond %{REQUEST_URI} /$ [NC] RewriteRule ^(.*)(/)$ 1TP RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0- 9]+),(.*).(.*)$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&ampstartstart =$5&news_name=$6 [L] RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([ 0-9]+),(.*).(.*)$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&amp ;news_name=$5 [L] RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0- 9]+),(.*).(.*)$ engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&amp ;news_name=$5 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([0-9]{4})/([0-9]{2})/([0 -9]{2})/(.*).(.*)$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4 [ L] RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*)$ index.php? newsid=$4&news_page=$2&cstart=$3 [L] RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(. *)$ index.php?newsid=$3&news_page=$2 [L] RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+) -(.*)$ engine/print.php?news_page=$2&newsid=$3 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule. ([0-9]+)-(.*)$ index.php?newsid=$2 [L] RewriteRule ^page,([0-9]+),([0-9]+),([0- 9]+)-(.*)$ index.php?newsid=$3&news_page=$1&cstart=$2 [L] RewriteRule ^page,([0-9]+),([0-9 ]+)-(.*)$ index.php?newsid=$2&news_page=$1 [L] RewriteRule ^print:page,([0-9]+),([0-9]+)-( .*)$ engine/print.php?news_page=$1&newsid=$2 [L] RewriteRule ^([0-9]+)-(.*)$ index.php?newsid=$1 [L]