Как правильно поставить редирект?

Kislov
На сайте с 29.04.2006
Offline
185
1024

Нужно сделать редирект с сайт.ру/раздел на сайт.ру/раздел/.

Как грамотно это сделать (с точки зрения ПС)?

iren K
На сайте с 28.12.2008
Offline
222
#1
Kislov:
Нужно сделать редирект с сайт.ру/раздел на сайт.ру/раздел/.

Как грамотно это сделать (с точки зрения ПС)?

RewriteRule ^(.+[^/])$ $1/ [QSA]
c уважением Iren
Kislov
На сайте с 29.04.2006
Offline
185
#2

Интересует 301 редирект. Нужно подсказать яндексу, что эти страницы идентичны.

RO
На сайте с 13.07.2009
Offline
88
#3

[R=301,L] десять символов

Kislov
На сайте с 29.04.2006
Offline
185
#4

iren K, не работает почему-то. Движок сайта DLE.

[umka]
На сайте с 25.05.2008
Offline
456
#5
Kislov:
iren K, не работает почему-то. Движок сайта DLE.

Правило это добавьте в .htaccess сразу после строчки 'RewriteEngine On'

Лог в помощь!
Kislov
На сайте с 29.04.2006
Offline
185
#6
[umka:
]Правило это добавьте в .htaccess сразу после строчки 'RewriteEngine On'

Работает, если

RewriteRule ^(.+[^/])$ $1/ [QSA]

Не работает, если

RewriteRule ^(.+[^/])$ $1/ [R=301,L]

Я что-то не так делаю. 😒

Мне нужно, чтобы сервер вернул 301 по запросу сайт.ру/раздел. А может не стоит этого делать?

[umka]
На сайте с 25.05.2008
Offline
456
#7

А покажите тут весь .htaccess

Вообще, второй вариант должен работать.

QSA тут не нужен и дело явно не в нём.

Мне нужно, чтобы сервер вернул 301 по запросу сайт.ру/раздел. А может не стоит этого делать?

Идея неплохая :)

Избавитесь от дублирующихся страниц.

Kislov
На сайте с 29.04.2006
Offline
185
#8

При втором варианте по запросу сайт.ру/cultura редиректит на

http://сайт.ру/home/k/kislov/public_html/index.php/?do=cat&category=home/k/kislov/public_html/cultura/

Весь .htaccess

DirectoryIndex index.php

RewriteEngine On

# Редиректы
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 ^([^.]+)/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 ^([^.]+)/([0-9]+)-(.*).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 ^([0-9]+)-(.*).html(/?)+$ index.php?newsid=$1 [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 ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]
# вывод для отдельного юзера
RewriteRule ^user/([^/]*)/rss.xml$ engine/rss.php?subaction=allnews&user=$1 [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 ^user/([^/]*)/news(/?)+$ index.php?subaction=allnews&user=$1 [L]
RewriteRule ^user/([^/]*)/news/page/([0-9]+)(/?)+$ index.php?subaction=allnews&user=$1&cstart=$2 [L]
RewriteRule ^user/([^/]*)/news/rss.xml(/?)+$ engine/rss.php?subaction=allnews&user=$1 [L]
# вывод всех последних новостей
RewriteRule ^lastnews/(/?)+$ index.php?do=lastnews [L]
RewriteRule ^lastnews/page/([0-9]+)(/?)+$ index.php?do=lastnews&cstart=$1 [L]
# вывод в виде каталога
RewriteRule ^catalog/([^/]*)(/?)+$ index.php?catalog=$1 [L]
RewriteRule ^catalog/([^/]*)/page/([0-9]+)(/?)+$ index.php?catalog=$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 ^rules.html$ index.php?do=rules [L]
RewriteRule ^statistics.html$ index.php?do=stats [L]
RewriteRule ^addnews.html$ index.php?do=addnews [L]
RewriteRule ^rss.xml$ engine/rss.php [L]
RewriteRule ^sitemap.xml$ uploads/sitemap.xml [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 ^page,([0-9]+),([^/]+).html$ index.php?do=static&page=$2&news_page=$1 [L]
RewriteRule ^print:([^/]+).html$ engine/print.php?do=static&page=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+).html$ index.php?do=static&page=$1 [L]
[umka:
]Избавитесь от дублирующихся страниц.

Поэтому все это и задумал.

Буду очень признателен за помощь.

[umka]
На сайте с 25.05.2008
Offline
456
#9

Найдите вот эту строку:

RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]

И вместо неё напишите вот эти две (именно в таком порядке):

RewriteRule ^([^.]+)[^/]$ $1/? [R=301,L]
RewriteRule ^([^.]+)/$ index.php?do=cat&category=$1 [L]

Должно помочь :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий