2013-07-18 104 views
0

我知道.htaccess規則從上到下被解析,但如果我的URL匹配兩個規則哪一個將被使用,爲什麼?Apache htaccess規則優先

我有一個像

^(.*)$ index.php?pag=cms&title=$1 
^store/(.*)$ index.php?pag=store&id=$1 

基本上任何URL匹配的第一條規則又怎樣與其他的情況簡單的規則?

回答

5

如果URL匹配兩個規則,那麼這是第一個重寫的規則。這並不是說第二條規則不會觸發。它的確如此,但它無法匹配,因爲隨後的規則觸發了它之前的規則的輸出。

如果以某種方式,您不希望重寫過程在第一個匹配規則處停止,則可以使用[L]標誌將該規則標記爲最後一個。

^(.*)$ index.php?pag=cms&title=$1 [L] 
^store/(.*)$ index.php?pag=store&id=$1 # won't fire now