2014-09-30 198 views
0

我想知道,如果下面有可能多重寫規則

RewriteRule ^([^/]*)/([^/]*)$     /search.php?type=$1&query=$2 [L] 
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$   /search.php?type=$1&query=$2&condition=$3 [L] 
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /search.php?type=$1&query=$2&page=$3[L] 

正如你所看到的第一個和第三排是similiar唯一的區別是名稱第三個參數,第二條規則將被用於諸如

/isbn/1203910293/new 

頁,而第三條規則將被用於網頁例如在頁面別名頁碼

/title/harry-potter/2 

我知道這看起來很愚蠢的考慮,我可以只是調用condition參數,但如果使用的參數page

回答

0

第三個規則的圖案,將在未來明確的事情了^([^/]*)/([^/]*)/([^/]*)/([^/]*)$比賽

/title/harry-potter/2 

因爲規則需要四個部分,例如

/title/harry-potter/2/xyz 

,或者至少尾部斜槓

/title/harry-potter/2/ 

相反,它會通過第二條規則模式相匹配,因爲它有三個部分太多,就像

/isbn/1203910293/new 

如果你想要匹配頁碼,您需要按照類似於第二條規則的規則進行匹配,但要更具體一些,例如

RewriteRule ^([^/]*)/([^/]*)/(\d+)$ /search.php?type=$1&query=$2&page=$3 [L]