-2

不工作重写规则

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 什么都没有发生

4

3 回答 3

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=302R=301. R=301在测试你的 mod_rewrite 规则时避免使用(永久重定向)。

于 2013-05-30T22:42:28.443 回答
0

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

于 2013-05-30T12:58:02.383 回答
0

请注意,您的正则表达式(一旦删除句点)将匹配一些您可能不期望的 URI,例如

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

尝试:

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

其中明确说明了您要匹配的字符串的开头和结尾。

于 2013-05-30T12:16:41.113 回答