Apache HTTP Server 版本2.2

| 說明 | 指定目錄索引文件以及為目錄提供"尾斜杠"重定向 |
|---|---|
| 狀態(tài) | 基本(B) |
| 模塊名 | dir_module |
| 源文件 | mod_dir.c |
目錄的索引可以有兩個來源:
index.html 。mod_dir提供的DirectoryIndex指令用于設(shè)置這個文件名。mod_autoindex提供。這兩個功能是相互獨立的,所以你可以完全去除或替換索引的自動生成。
因為對目錄的請求需要以一個"/"結(jié)尾,所以當(dāng)服務(wù)器接收到對 http://servername/foo/dirname 的請求時,若dirname是一個目錄,則mod_dir將會將其重定向到 http://servername/foo/dirname/ 。
| 說明 | 當(dāng)客戶端請求一個目錄時尋找的資源列表 |
|---|---|
| 語法 | DirectoryIndex local-url [local-url] ... |
| 默認(rèn)值 | DirectoryIndex index.html |
| 作用域 | server config, virtual host, directory, .htaccess |
| 覆蓋項 | Indexes |
| 狀態(tài) | 基本(B) |
| 模塊 | mod_dir |
DirectoryIndex指令設(shè)置了當(dāng)客戶端在請求的目錄名的末尾刻意添加一個"/"以表示請求該目錄的索引時,服務(wù)器需要尋找的資源列表。Local-url(%已解碼的)是一個相對于被請求目錄的文檔的URL(通常是那個目錄中的一個文件)。可以指定多個URL,服務(wù)器將返回最先找到的那一個。若一個也沒有找到,并且那個目錄設(shè)置了Indexes選項,服務(wù)器將會自動產(chǎn)生一個那個目錄中的資源列表。
DirectoryIndex index.html
上例配置指示對 http://myserver/docs/ 的請求返回 http://myserver/docs/index.html(若存在),或返回該目錄下所有資源的列表。
注意,指定的文檔不一定必須位于被請求的目錄下,也可以指定一個絕對URL來指向其他位置:
DirectoryIndex index.html index.txt /cgi-bin/index.pl
這樣的設(shè)置將導(dǎo)致在index.html或index.txt都不存在的情況下執(zhí)行CGI腳本/cgi-bin/index.pl 。
| 說明 | 打開或關(guān)閉目錄結(jié)尾斜線(/)自動補全功能 |
|---|---|
| 語法 | DirectorySlash On|Off |
| 默認(rèn)值 | DirectorySlash On |
| 作用域 | server config, virtual host, directory, .htaccess |
| 覆蓋項 | Indexes |
| 狀態(tài) | 基本(B) |
| 模塊 | mod_dir |
| 兼容性 | 僅在 Apache 2.0.51 及以后的版本中可用 |
DirectorySlash指令決定mod_dir是否通過在請求的URL結(jié)尾補上"/"使其重定向到其所指向的目錄。
典型的,如果用戶請求一個結(jié)尾沒有"/"的資源,并且該資源指向一個目錄,mod_dir將通過在請求的URL結(jié)尾補上"/"使其重定向到其所指向的目錄。默認(rèn)開啟自動補全功能有以下原因:
mod_autoindex將會正確工作。因為它不會自動補全路徑,所以將會指向錯誤的路徑。DirectoryIndex將只評估有"/"結(jié)尾的目錄。如果你不希望這個自動補全功能生效,并且不在乎上述原因,你可以關(guān)閉它:
# 請參見下面的安全警告
<Location /some/path>
DirectorySlash Off
SetHandler some-handler
</Location>
關(guān)閉目錄自動重定向可能會導(dǎo)致信息泄漏?紤]mod_autoindex被激活(Options +Indexes)并且DirectoryIndex也正確設(shè)置到一個資源(比如:index.html)同時沒有其他處理器用于URL的情況。此時,以"/"結(jié)尾的URL將得到index.html文件,而不以"/"結(jié)尾的請求將得到目錄列表。