проблема перенаправления .htaccess 301 - PullRequest
0 голосов
/ 12 января 2011

У меня проблемы с написанием правила для следующей проблемы в .htaccess. Вот что мне нужно.

КОГДА ЭТОТ URL

www.mysite.com/cat/2011/subcat1/subcat2/product.htm?page=2

ЭТО ДОЛЖНО 301, НАПРАВЛЕНО НА ЭТО

www.mysite.com/cat/2011/subcat1/subcat2/product/2.htm

Подскажите, пожалуйста, как это сделать?

Спасибо

1 Ответ

4 голосов
/ 12 января 2011

----- ОТКРЫТЫЙ И ИСПЫТАННЫЙ ОТВЕТ ----------

RewriteEngine On
RewriteCond %{QUERY_STRING} page=(\d+)
RewriteRule ^cat/(\d+)/([^/]+)/([^/]+)/product\.htm http://www.mysite.com/cat/$1/$2/$3/product/%1.htm? [R=301,L]
  • RewriteRule соответствует только части URL, а не строке запроса. Итак, RewriteCond используется для сопоставления строки запроса.
  • Обратите внимание, совпадения из URL-адреса используются как $ N, а совпадения из строки запроса используются как% N
  • В конце переписанного URL-адреса стоит вопросительный знак. Это предотвращает добавление исходной строки запроса к новому переписанному URL.

Для любого количества подкадров:

RewriteEngine On
RewriteCond %{QUERY_STRING} page=(\d+)
RewriteRule ^cat/(\d+)/(.+)/product\.htm http://www.mysite.com/cat/$1/$2/product/%1.htm? [R=301,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...