不起作用RewriteRule
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 :(得分:0)
请注意,您的正则表达式(一旦删除句点)将匹配您可能不会想到的某些URI。
something/find-a-bar/london/social-eating-house
尝试:
^find-a-bar/london/social-eating-house$
明确说明了您要匹配的字符串的开头和结尾。
答案 1 :(得分:0)
RewriteRule。* find-a-bar / london / social-eating-house。 / find-a-bar / london / the-blind-pig-at-social-eating-house [R = 301,L]就是答案
答案 2 :(得分:0)
不正常工作:
.*find-a-bar/london/social-eating-house.
正如您所看到的,您在此处使用.*
贪婪匹配,因此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
。在测试mod_rewrite规则时,请避免使用R=301
(永久重定向)。