Apache HTTP Server 版本2.2
說(shuō)明 | 指定目錄索引文件以及為目錄提供"尾斜杠"重定向 |
---|---|
狀態(tài) | 基本(B) |
模塊名 | dir_module |
源文件 | mod_dir.c |
目錄的索引可以有兩個(gè)來(lái)源:
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/
。
說(shuō)明 | 當(dāng)客戶(hù)端請(qǐng)求一個(gè)目錄時(shí)尋找的資源列表 |
---|---|
語(yǔ)法 | 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)客戶(hù)端在請(qǐng)求的目錄名的末尾刻意添加一個(gè)"/"以表示請(qǐng)求該目錄的索引時(shí),服務(wù)器需要尋找的資源列表。Local-url(%已解碼的)是一個(gè)相對(duì)于被請(qǐng)求目錄的文檔的URL(通常是那個(gè)目錄中的一個(gè)文件)?梢灾付ǘ鄠(gè)URL,服務(wù)器將返回最先找到的那一個(gè)。若一個(gè)也沒(méi)有找到,并且那個(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來(lái)指向其他位置:
DirectoryIndex index.html index.txt /cgi-bin/index.pl
這樣的設(shè)置將導(dǎo)致在index.html
或index.txt
都不存在的情況下執(zhí)行CGI腳本/cgi-bin/index.pl
。
說(shuō)明 | 打開(kāi)或關(guān)閉目錄結(jié)尾斜線(/)自動(dòng)補(bǔ)全功能 |
---|---|
語(yǔ)法 | 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
是否通過(guò)在請(qǐng)求的URL結(jié)尾補(bǔ)上"/"使其重定向到其所指向的目錄。
典型的,如果用戶(hù)請(qǐng)求一個(gè)結(jié)尾沒(méi)有"/"的資源,并且該資源指向一個(gè)目錄,mod_dir
將通過(guò)在請(qǐng)求的URL結(jié)尾補(bǔ)上"/"使其重定向到其所指向的目錄。默認(rèn)開(kāi)啟自動(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)參見(jiàn)下面的安全警告
<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í)沒(méi)有其他處理器用于URL的情況。此時(shí),以"/"結(jié)尾的URL將得到index.html
文件,而不以"/"結(jié)尾的請(qǐng)求將得到目錄列表。