2011-08-17 51 views
0

即時具有以下modrewrite結構:htaccess的問題

/links/ 
/links/web/ 
/links/travel/ 
.. 

相應htaccess的將是:

RewriteRule ^links/ links.php [L] 
RewriteRule ^links/web/ links.php?catID=1 [L] 
RewriteRule ^links/travel/ links.php?catID=2 [L] 

的問題是,根連桿(第一行)之前將始終觸發實際的分類鏈接。 有沒有辦法解決這個問題?我發現的唯一方法是修改根鏈接:

^links/index.html 

但我想省略index.html - 任何想法如何這可能?

+0

爲什麼不把第一個重寫規則其他的RewriteRules後? – 2011-08-17 12:23:58

回答

5

添加$

RewriteRule ^links/$ links.php [L] 

這意味着該URL的末尾。

另外,如果您評估$_SERVER["REQUEST_URI"],您也可以在PHP中進行檢查。

1

只是將其顛倒。如果沒有/ web /再次檢查/ links/

RewriteRule ^links/travel/ links.php?catID=2 [L] 
RewriteRule ^links/web/ links.php?catID=1 [L] 
RewriteRule ^links/ links.php [L] 
1

把第一行最後一行;這樣,它會在其他人之後執行。

1

添加以下重寫規則第一可能做到這一點(我沒有測試):

RewriteRule ^links/$ links/index.html [L]