Вопрос по htaccess

GF
На сайте с 17.12.2009
Offline
7
406

Всех приветствую!

По неизвестной мне причине Яндекс проиндексил несколько страниц вида www.domain.ru/index.php?catid=5 следующим образом: www.domain.ru/?catid=5. Как их склеить 301 редиректом, причём так, чтобы в адресной строке url менялся на "правильный" при переходе по "неправильной" ссылке.

Вот, что я насочинял:

RewriteCond %{REQUEST_URI} ^(.+)/\?(.+)$

RewriteRule ^(.+)/\?(.+)$ index.php?$2

Но это не работает...

Прошу помощи у знатоков и заранее благодарю!

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

graf_feoktistov, даже отдаленно работать не будет.

RewriteCond %{REQUEST_URI} !^/index.php

RewriteCond %{QUERY_STRING} ^catid=([0-9]+)$
RewriteRule .* http://www.domain.ru/index.php?catid=%1 [L,R=301]
GF
На сайте с 17.12.2009
Offline
7
#2

siv1987, спасибо, но как бы сделать так, чтобы без привязки к catid? Т.е. чтобы любой запрос вида www.domain.ru/?[какая-нибудь_хрень] преобразовывался в www.domain.ru/index.php?[какая-нибудь_хрень]

Так?

RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{QUERY_STRING} ^([a-z0-9]+)=([0-9]+)$
RewriteRule .* http://www.domain.ru/index.php?%1=%2 [L,R=301]

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