Избавиться от дублей страниц через редирект в .htaacess

Zdorova
На сайте с 09.01.2010
Offline
113
461

У меня на сайте все УРЛЫ имеют дубли:

http://moldfootball.com/?index=news13919

и

http://moldfootball.com/index.php?index=news13919

Кто-то может подсказать, как в .htaacess настроить 301 редирект со второго урла на первый, чтобы не гневить поисковики дублями страниц?

Спасибо

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

Как-то так


RewriteEngine on
RewriteCond %{THE_REQUEST} "^GET (.*)/index\.php\?"
RewriteRule .* %1/?%{QUERY_STRING} [R=301,L]
Лог в помощь!
siv1987
На сайте с 02.04.2009
Offline
427
#2

или

RewriteEngine on

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteRule ^index\.php$ / [R=301,L]

Zdorova
На сайте с 09.01.2010
Offline
113
#3

Спасибо!

Вроде работают оба варианта.

А какой лучше, в чем разница?

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

Во втором варианте используется только одна переменная окружения, проще регулярка, нет подстановки. Вобщем, должно работать примерно на 2-3 наносекунды шустрее :)

siv1987
На сайте с 02.04.2009
Offline
427
#5

Существенное отличие то, что в первом варианте редирект будет работать только для GET запросов, во втором для всех типов - здесь могут быть проблемы с отправкой форм на index.php, при редиректе пост параметры будут теряться.

Zdorova
На сайте с 09.01.2010
Offline
113
#6

Так будут теряться в вашем варианте или в варианте Умки? Вы немного противоречиво сформулировали.

Склеивается ли при таком редиректе ПР страниц?

siv1987
На сайте с 02.04.2009
Offline
427
#7
Zdorova:
Так будут теряться в вашем варианте или в варианте Умки?

Во втором, моем. Я вроде написал, что первый работает для ГЕТ, значит для ПОСТ он работать не будет. Тут еще вопрос каким образом запрашивает страницу бот.

Если юзаете вариант [umka], к ГЕТ можно еще добавить и HEAD - ^(?:GET|HEAD)

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