2013-05-30 3 views
-2

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

RewriteRule .*find-a-bar/london/social-eating-house. /find-a-bar/london/the-blind-pig-at-social-eating-house [R=301,L] 

, когда я типа doamin.com/find-a-bar/london/social-eating-house ничего случиться

ответ

0

Имейте в виду, что ваше регулярное выражение (после того, как период удален) будет соответствовать некоторым URI, которые вы не можете ожидать, например

something/find-a-bar/london/social-eating-house 

Try:

^find-a-bar/london/social-eating-house$ 

Который четко оговорен начало и конец строки, которую вы пытаетесь соответствовать.

0

RewriteRule. * Find-a-bar/london/social-eat-house./Найти мини-бар/лондон/слепом свинка-на-социал-трактире [R = 301, L] является ответом

0

Не работает регулярное выражение:

.*find-a-bar/london/social-eating-house. 

Как вы можете см., что вы используете .* жадное соответствие здесь, и поэтому основной движок regex mod_rewrite может соответствовать полному регулярному выражению, используя .*. Лучше использовать нежадным шаблон соответствия, как это (с начала строки и конца анкеров):

^.*?find-a-bar/london/social-eating-house/?$ 

Ваше правило должно быть:

RewriteRule ^.*?find-a-bar/london/social-eating-house/?$ /find-a-bar/london/the-blind-pig-at-social-eating-house [R=302,L,NC] 

только после того, как вы убедитесь, что он работает нормально, замените R=302 - R=301. Избегайте использования R=301 (Перманентный переадресация) при тестировании ваших правил mod_rewrite.

Смежные вопросы