2013-05-30 51 views
-2

不工作重寫規則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

要知道,你的正則表達式(一旦週期刪除)將匹配您可能不期望的一些URI

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

嘗試:

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

其中明確規定開始和你想匹配字符串的結尾。

0

RewriteRule。* find-a-bar/london/social-eating-house。 /找到-A-酒吧/倫敦/的盲豬 - 在 - 社會 - 食內部[R = 301,L]是答案

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。避免在測試mod_rewrite規則時使用R=301(永久重定向)。