2011-11-25 14 views
2

我遇到了一個在.htaccess中覆蓋所有其他規則的全部規則問題。htaccess-catch-all問題

RewriteRule ^images/(.*).gif$ media/gif/$1.gif [L] 
RewriteRule ^images/(.*).jpg$ media/jpg/$1.jpg [L] 
RewriteRule ^(.*)$ dispatch.php?uri=$1 [C] 

如何防止catch-all在執行時發現匹配?

回答

1

你可以使用一個重寫條件

RewriteCond %{REQUEST_URI} ^images.* 
RewriteRule ^images/(.*).gif$ media/gif/$1.gif [L] 
RewriteRule ^images/(.*).jpg$ media/jpg/$1.jpg [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ dispatch.php?uri=$1 [C] 

我寫widouth verifiying

+1

它沒有工作,但你沒把我在正確的道路上。這做到了:RewriteCond%{REQUEST_URI}!\。(css | jpg | js | gif | png)$ RewriteRule ^(。*)$ dispatch.php?uri = $ 1 [L] – Joe