2010-01-19 67 views
0

這個重寫規則僅改寫level.php當嘗試 本地主機/ A/B/115-aaa.html發送的所有請求level.php但 本地主機/ A/B/是工作的.htaccess重寫規則問題

爲什麼?

RewriteEngine On 
RewriteRule ^(.*)\/(.*)-(.*).html$ page.php?page=$1&a=$2&b=$3 [QSA] 
RewriteRule ^(.*)$ level.php?q=$1 [QSA] 

回答

0

如果你的第一個規則匹配它去page.php文件?頁= foo的& A =酒吧& B = 123。這將再次與您的規則和第二條規則匹配相匹配。您可以通過將以下行添加到.htacces文件中來避免這種情況。

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9]+)\/([a-zA-Z0-9]+)\/([0-9]+)\-([a-zA-Z0-9]+)\.html$ page.php?page=$1&a=$2&b=$3 [L] 
#Prevent the last rule to be applied to page.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ level.php?q=$1 [L]