Перенаправление htaccess - более строгое соответствие на 301? - PullRequest
0 голосов
/ 17 августа 2010

Следующее правило перенаправления на основе htaccess работает нормально:

Redirect 301 /content/category/2/24/30/ /new/c/url/

Проблема в том, что оно работает слишком хорошо.Если пользователь перейдет на

/content/category/2/24/30/50/50/

, он будет перенаправлен на:

/new/c/url/50/50/

Как я могу заставить его выполнить строгое совпадение?Либо перенаправить оба примера просто:

/new/c/url/

было бы хорошо, иначе игнорирование более длинной версии также хорошо.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 17 августа 2010

Redirect соответствует префиксам пути, а не только всему пути. Если указанный префикс пути соответствует запрошенному пути, оставшийся путь от префикса добавляется к пути замены.

Поэтому используйте RedirectMatch вместо ^ и $, отмечающих начало и конец пути:

RedirectMatch 301 ^/content/category/2/24/30/$ /new/c/url/
0 голосов
/ 17 августа 2010

И решение должно быть

RedirectMatch 301 ^/content/category/2/24/30/$ /new/c/url/

По сути, вы говорите, что 30 / - это конец строки.

Я не могу попробовать, так что дайте мне знать, если он не работает.

^ соответствует началу строки, а $ соответствует концу строки.

Прочтите это, если вы хотите узнать больше об этом: http://www.regular -expressions.info /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...