不工作重寫規則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沒有發生
不工作重寫規則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沒有發生
要知道,你的正則表達式(一旦週期刪除)將匹配您可能不期望的一些URI
something/find-a-bar/london/social-eating-house
嘗試:
^find-a-bar/london/social-eating-house$
其中明確規定開始和你想匹配字符串的結尾。
RewriteRule。* find-a-bar/london/social-eating-house。 /找到-A-酒吧/倫敦/的盲豬 - 在 - 社會 - 食內部[R = 301,L]是答案
不工作的正則表達式:
.*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
(永久重定向)。