Apache HTTP Server 版本2.2
說明 | 指定目錄索引文件以及為目錄提供"尾斜杠"重定向 |
---|---|
狀態(tài) | 基本(B) |
模塊名 | dir_module |
源文件 | mod_dir.c |
目錄的索引可以有兩個來源:
index.html
。mod_dir
提供的DirectoryIndex
指令用于設(shè)置這個文件名。mod_autoindex
提供。這兩個功能是相互獨(dú)立的,所以你可以完全去除或替換索引的自動生成。
因為對目錄的請求需要以一個"/"結(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é)尾斜線(/)自動補(bǔ)全功能 |
---|---|
語法 | 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é)尾補(bǔ)上"/"使其重定向到其所指向的目錄。
典型的,如果用戶請求一個結(jié)尾沒有"/"的資源,并且該資源指向一個目錄,mod_dir
將通過在請求的URL結(jié)尾補(bǔ)上"/"使其重定向到其所指向的目錄。默認(rèn)開啟自動補(bǔ)全功能有以下原因:
mod_autoindex
將會正確工作。因為它不會自動補(bǔ)全路徑,所以將會指向錯誤的路徑。DirectoryIndex
將只評估有"/"結(jié)尾的目錄。如果你不希望這個自動補(bǔ)全功能生效,并且不在乎上述原因,你可以關(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é)尾的請求將得到目錄列表。