Apache HTTP Server 版本2.2

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