Apache HTTP服务器V2.0

| 说明 | 将指向目录的URL映射到一个索引文件 |
|---|---|
| 状态 | Base |
| 模块名 | dir_module |
| 源文件 | mod_dir.c |
目录的索引可以有两个来源:
index.html"。mod_dir提供的DirectoryIndex指令用于设置这个文件名。mod_autoindex提供。这两个功能是相互独立的,所以你可以完全去除或替换索引的自动生成。
因为对目录的请求需要以一个"/"结尾,所以当服务器接收到对http://servername/foo/dirname的请求时,若dirname是一个目录,则mod_dir将会将其重定向到http://servername/foo/dirname/
| 说明 | 当客户端请求一个目录时寻找的资源列表 |
|---|---|
| 语法 | DirectoryIndex
local-url [local-url] ... |
| 默认值 | DirectoryIndex index.html |
| 作用域 | server config, virtual host, directory, .htaccess |
| 覆盖项 | Indexes |
| 状态 | Base |
| 模块 | mod_dir |
DirectoryIndex指令设置了当客户端在请求的目录名的末尾刻意添加一个"/"以表示请求该目录的索引时,服务器需要寻找的资源列表。Local-url (%已解码的)是一个相对于被请求目录的文档的URL(通常是那个目录中的一个文件)。可以指定多个URL,服务器将返回最先找到的那一个。若一个也没有找到,并且那个目录设置了Indexes选项,服务器将会自动产生一个那个目录中的资源列表。
DirectoryIndex index.html
上例配置指示对http://myserver/docs/的请求返回http://myserver/docs/index.html(若存在),或返回该目录下的所有资源的列表。
注意,指定的文档不一定必须位于被请求的目录下,也可以指定一个绝对URL来指向其他位置:
DirectoryIndex index.html index.txt /cgi-bin/index.pl
这样的设置将导致在index.html或index.txt都不存在的情况下执行CGI脚本/cgi-bin/index.pl
| 说明 | 打开或关闭目录重定向的功能 |
|---|---|
| 语法 | DirectorySlash On|Off |
| 默认值 | DirectorySlash On |
| 作用域 | server config, virtual host, directory, .htaccess |
| 覆盖项 | Indexes |
| 状态 | Base |
| 模块 | mod_dir |
| 兼容性 | 2.0.51及以后版本中可用 |
DirectorySlash指令决定mod_dir是否通过在请求的URL结尾补上"/"使其重定向到其所指向的目录。
代表性的,如果用户请求一个资源并且结尾没有"/",若该资源是指向一个目录,mod_dir将通过在请求的URL结尾补上"/"使其重定向到其所指向的目录。但是在原始请求中就必须加上结尾的"/"有以下好处:
mod_autoindex将会正确工作。因为它并不会补全路径,所以将会指向错误的路径。DirectoryIndex将只评估有"/"结尾的目录。如果你不希望这个自动重定向的功能生效,并且不在乎上述影响,你可以关闭它:
# 请参见下面的安全警告
<Location /some/path>
DirectorySlash Off
SetHandler some-handler
</Location>
关闭目录自动重定向可能会导致信息泄漏。考虑mod_autoindex被激活(Options +Indexes)、DirectoryIndex也正确设置到一个资源(比如:index.html)并且没有其他处理器用于URL的情况。这样的情况下,以"/"结尾的URL将得到index.html文件,而不以"/"结尾的请求将得到目录列表。