?
? ????? PHP ??? ???? ??? ?? ??
說明 | 指定目錄索引文件以及為目錄提供"尾斜杠"重定向 |
---|---|
狀態(tài) | 基本(B) |
模塊名 | dir_module |
源文件 | mod_dir.c |
目錄的索引可以有兩個(gè)來源:
index.html
。mod_dir
提供的DirectoryIndex
指令用于設(shè)置這個(gè)文件名。mod_autoindex
提供。這兩個(gè)功能是相互獨(dú)立的,所以你可以完全去除或替換索引的自動(dòng)生成。
因?yàn)閷δ夸浀恼埱笮枰砸粋€(gè)"/"結(jié)尾,所以當(dāng)服務(wù)器接收到對 http://servername/foo/dirname
的請求時(shí),若dirname
是一個(gè)目錄,則mod_dir
將會(huì)將其重定向到 http://servername/foo/dirname/
。
說明 | 當(dā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)客戶端在請求的目錄名的末尾刻意添加一個(gè)"/"以表示請求該目錄的索引時(shí),服務(wù)器需要尋找的資源列表。Local-url(%已解碼的)是一個(gè)相對于被請求目錄的文檔的URL(通常是那個(gè)目錄中的一個(gè)文件)。可以指定多個(gè)URL,服務(wù)器將返回最先找到的那一個(gè)。若一個(gè)也沒有找到,并且那個(gè)目錄設(shè)置了Indexes
選項(xiàng),服務(wù)器將會(huì)自動(dòng)產(chǎn)生一個(gè)那個(gè)目錄中的資源列表。
DirectoryIndex index.html
上例配置指示對 http://myserver/docs/
的請求返回 http://myserver/docs/index.html
(若存在),或返回該目錄下所有資源的列表。
注意,指定的文檔不一定必須位于被請求的目錄下,也可以指定一個(gè)絕對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
是否通過在請求的URL結(jié)尾補(bǔ)上"/"使其重定向到其所指向的目錄。
典型的,如果用戶請求一個(gè)結(jié)尾沒有"/"的資源,并且該資源指向一個(gè)目錄,mod_dir
將通過在請求的URL結(jié)尾補(bǔ)上"/"使其重定向到其所指向的目錄。默認(rèn)開啟自動(dòng)補(bǔ)全功能有以下原因:
mod_autoindex
將會(huì)正確工作。因?yàn)樗粫?huì)自動(dòng)補(bǔ)全路徑,所以將會(huì)指向錯(cuò)誤的路徑。DirectoryIndex
將只評估有"/"結(jié)尾的目錄。如果你不希望這個(gè)自動(dòng)補(bǔ)全功能生效,并且不在乎上述原因,你可以關(guā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í)沒有其他處理器用于URL的情況。此時(shí),以"/"結(jié)尾的URL將得到index.html
文件,而不以"/"結(jié)尾的請求將得到目錄列表。