2011-02-06 79 views
0

所以自定義目錄索引,Apache默認的目錄列表吮吸和mod_autoindex的自定義選項吸,所以我想我可以寫在我的服務器的根目錄重定向到一個目錄的任何請求一些重寫規則:使用mod_rewrite創建Apache中

<IfModule rewrite_module> 
    RewriteEngine on 
    RewriteCond %{REQUEST_URI} -d 
    RewriteRule .* /index.php?dir=$0 
</IfModule> 

現在,我得到的印象是這個作品至少有一點關閉,indexes仍然可以訪問localhost(它顯示index.php),但是它似乎沒有達到子目錄(這要麼恢復到Apache的目錄索引如果indexes選項開啓,或者在403關閉的情況下)。

我的問題是:我可以得到這個規則適用於全球或我的追求漂亮的目錄索引註定要失敗?

編輯:我應該注意到:上述規則包含在服務器根.htaccess

編輯:理想的解決方案,如果存在的話,還是會有DirectoryIndex功能(即,index.php等。如果存在的話會顯示),

回答

2

-d目錄測試並只與絕對文件工作系統路徑。因此,要麼提供絕對文件系統路徑(例如,直接使用%{DOCUMENT_ROOT}%{REQUEST_URI}%{REQUEST_FILENAME}),要麼使用-D,這會產生額外的子請求來解析文件系統路徑的URI路徑。我更喜歡:

RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule .* /index.php?dir=$0 
+0

哇,我是一個工具。感謝您抓住這個! – connec 2011-02-08 21:18:55