htaccess правильный 301 редирект

M
На сайте с 13.09.2011
Offline
0
1120

Здравствуйте! Подскажите пожалуйста - поменял структуру сайта, перенаправляю старые url на новые через htaccess путем:

Redirect 301 /catalog/url/ http://www.site.ru/catalog/maincat/cat/url/

Но после редиректа у меня в адресной строке дописывается :

?razd=url - GET параметр

Ну не могу понять почему он дописывается, у меня далее идет в htaccess

RewriteRule ^catalog/.*\/.*\/([-_a-z0-9]+)/$ prod1.php?url=$1

RewriteRule ^catalog/.*\/([-_a-z0-9]+)/([-_a-z0-9]+)$ prod_razd.php?url=$1&sort=$2

RewriteRule ^catalog/.*\/([-_a-z0-9]+)/$ prod_razd.php?url=$1

RewriteRule ^catalog/([-_a-z0-9]+)/$ prod.php?razd=$1

RewriteRule ^catalog/ prod.php?url=cat

Тоесть я так понимаю он сначала сделал редирект потом пощел - и должен преобразовать мою строку в prod1.php?url=$1 - ну он это делает - но зачем дописывает то ?

если убераем строку RewriteRule ^catalog/([-_a-z0-9]+)/$ prod.php?razd=$1 - то он дописывает ?url=cat

если убирает и RewriteRule ^catalog/ prod.php?url=cat - то тогда все нормально ничего не дописывает

Собственно почему??? причем тут ваабще файл prod.php, если срабатывает

RewriteRule ^catalog/.*\/.*\/([-_a-z0-9]+)/$ prod1.php?url=$1 - в файле prod1.php формируется эта страница.

КАК так?? ваабще запутался... мастера.. помогите

M
На сайте с 17.04.2008
Offline
88
MBo
#1

заменить это

Redirect 301 /catalog/url/ http://www.site.ru/catalog/maincat/cat/url/

следующим

RewriteRule ^catalog/url/(.*)$ /catalog/maincat/cat/url/$1 [R=301,L]

M
На сайте с 13.09.2011
Offline
0
#2

Огромное спасибо и низкий поклон!! +1000

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