2009-09-09 74 views
2

我在父目錄中有一個Apache .htaccess文件,這個.htaccess文件當前位於該目錄中。這可以根據需要完美地重定向所有請求。但是,如果請求是針對有效文件(而不是目錄),那麼我希望在此目錄中忽略主要重寫規則。mod_rewrite:除了文件以外的任何東西都可以重定向

目前,以下關閉目錄的重寫,我不明白爲什麼。

<IfModule mod_rewrite.c> 
Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} !-d 
RewriteCond %{REQUEST_URI} -f 
RewriteRule . - [L] 
</IfModule> 

感謝任何人的貢獻。

回答

1

嘗試REQUEST_FILENAME而不是REQUEST_URI

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule . - [L] 

REQUEST_URI確實只包含URI路徑,但Apache需要一個絕對的文件系統路徑來測試agains -d-f。並且REQUEST_FILENAME保存對應於當前請求的URI的絕對文件系統路徑。

+1

恐怕沒有這樣的運氣。好主意,但這應該在理論上起作用。我怪我的託管服務提供商! – zanbaldwin 2009-09-09 11:39:32

+0

@mynameiszanders:嘗試調查「REQUEST_FILENAME」包含的值。 – Gumbo 2009-09-09 11:50:55

相關問題