2008-12-01 114 views
4

我有一個網站,採用通用的mod_rewrite規則推到index.php頁面的所有請求,某些文件擴展名的除外:URL重寫毯子目錄例外重定向

RewriteRule !\.(js|ico|gif|jpg|JPG|png|css|php|phtml|pdf|txt|xml)$ index.php 

我需要能夠做的也是從該規則中排除某個目錄(包括其中包含的任何文件或子目錄) - 什麼是最佳解決方案?

這裏是我的全.htaccess文件,萬一別的東西在它是intefering:

RewriteEngine ON 
RewriteCond %{HTTP_HOST} !^www\..* 
RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} ^([^.]*)\.(co\.uk) 
RewriteRule ^.*$  http://www.%1.%2%{REQUEST_URI} [R=permanent,L] 

AddHandler application/x-httpd-php .phtml 

RewriteRule !\.(js|ico|gif|jpg|JPG|png|css|php|phtml|pdf|txt|xml)$ index.phtml 

php_value display_errors "On" 

回答

7

您所引述的線,一個名爲「風格」的實例目錄之前,需要:

RewriteRule ^style/ - [L] 

連字符的意思是「沒有重定向」和「[L]」的意思是「最後一條規則',因爲不要試圖將URL與以下規則相匹配。只要你喜歡,你可以放置儘可能多的這些線,但它們必須在你提出的問題之前。

0

您可以用RewriteCond %{REQUEST_FILENAME} !-f檢查不匹配現有的文件名的任何請求。

+0

我完全相信我理解你的答案 - 我嘗試了你的建議,並且它似乎沒有效果。我有一個名爲blog的目錄,我需要正常訪問 - 所以訪問mysite.com/blog時應該顯示index.php,但它現在仍然會被重定向。 – BrynJ 2008-12-01 21:13:01

+0

我的意思是我*不*完全確定!順便謝謝你的幫助。 – BrynJ 2008-12-01 21:13:49