2012-11-01 115 views
0

我想檢查一個URL是否包含sting「-EN.htm」,如果是的話應用重寫。mod_rewrite - 檢查字符串

應與^ -EN.htm如下完成,但該規則不工作:

RewriteCond %{REQUEST_URI} ^/(.*?)/([-_0-9a-zA-Z./=]*)^-EN.htm 
RewriteRule ^(.*)$ /indexEN.php?folder=%1&follow=%2 [L] 

我在做什麼錯?

謝謝你的每一個幫助,

斯科特

回答

0

你的正則表達式看起來不正確的。您也可以丟失條件,並將模式轉移到重寫規則。沿

RewriteRule ^/?(.*?)/([-_0-9a-zA-Z./=]*)^-EN.htm /indexEN.php?folder=$1&follow=$2 [L] 

線的東西你需要做的前導斜槓可選(htaccess的這個被剝離)和而不是使用反向引用,使用$的。

現在到你的模式,它是無效的。 ^與字符串(URI)的開頭相匹配,所以如果你有兩個字符串,並且你沒有試圖從字面上匹配^字符(你需要轉義),那麼表達式永遠不會匹配任何東西。沒有任何你不得不處理的網址的例子,我想你可能只想排第二個^

RewriteRule ^/?(.*?)/([-_0-9a-zA-Z./=]*)-EN.htm /indexEN.php?folder=$1&follow=$2 [L]