htaccess переписать для известного URL и строки запроса - PullRequest
0 голосов
/ 01 мая 2018

Бороться с проблемой перенаправления 301 и не могу видеть дрова для деревьев. Очень надеюсь, что кто-то может помочь.

У меня более 400 старых URL-адресов, которые нам нужно перенаправить на новые URL-адреса. Однако я изменил htaccess, чтобы создать чистый URL-адрес на новом сайте, и я не уверен, вызывает ли это проблему или я делаю что-то еще неправильно.

Чтобы очистить URL-адреса на новом сайте, я добавил следующее в htaccess fle:

RewriteEngine On
RewriteRule ^([0-9]+) category?cat=$1 [NC,L,QSA] 

Это так, что вместо www.mysite/category?cat=1 я могу иметь www.mysite/1 и-добавить-другую-информацию

Я сейчас пытаюсь сделать перенаправления для 400 URL, такие как:

 RewriteRule ^category?cat=1 1/and-add-other-information [R=301,NC,L,QSA]
RewriteRule ^category?cat=2 1/and-different-information [R=301,NC,L,QSA].

Я знаю, что флаг L имеет значение и пробовал это с и без.

Надеюсь, это имеет смысл.

1 Ответ

0 голосов
/ 01 мая 2018

QueryString не является частью совпадения в шаблоне RewriteRule. Вам необходимо использовать директиву RewriteCond и сопоставлять ее с переменной %{QUERY_STRING} следующим образом:

RewriteEngine on

RewriteCond %{QUERY_STRING} ^cat=1$
RewriteRule ^category$ /and-add-other-information? [R=301,NC,L,QSA]
...