Apach目录和默认文件index.html的关系
2010-07-17 19:52
381 查看
Apache模块 mod_dir
说明 | 指定目录索引文件以及为目录提供"尾斜杠"重定向 |
---|---|
状态 | 基本(B) |
模块名 | dir_module |
源文件 | mod_dir.c |
概述
目录的索引可以有两个来源:一个由用户编写的文件,通常叫:
index.html。
mod_dir提供的
DirectoryIndex指令用于设置这个文件名。
由服务器产生的一个列表。该功能由
mod_autoindex提供。
这两个功能是相互独立的,所以你可以完全去除或替换索引的自动生成。
因为对目录的请求需要以一个"/"结尾,所以当服务器接收到对
http://servername/foo/dirname的请求时,若
dirname是一个目录,则
mod_dir将会将其重定向到
http://servername/foo/dirname/。
DirectoryIndex 指令
说明 | 当客户端请求一个目录时寻找的资源列表 |
---|---|
语法 | DirectoryIndex local-url [local-url] ... |
默认值 | DirectoryIndex index.html |
作用域 | server config, virtual host, directory, .htaccess |
覆盖项 | Indexes |
状态 | 基本(B) |
模块 | mod_dir |
DirectoryIndex指令设置了当客户端在请求的目录名的末尾刻意添加一个"/"以表示请求该目录的索引时,服务器需要寻找的资源列表。Local-url(%已解码的)是一个相对于被请求目录的文档的URL(通常是那个目录中的一个文件)。可以指定多个URL,服务器将返回最先找到的那一个。若一个也没有找到,并且那个目录设置了
Indexes选项,服务器将会自动产生一个那个目录中的资源列表。
示例
DirectoryIndex index.html
上例配置指示对
http://myserver/docs/的请求返回
http://myserver/docs/index.html(若存在),或返回该目录下所有资源的列表。
注意,指定的文档不一定必须位于被请求的目录下,也可以指定一个绝对URL来指向其他位置:
DirectoryIndex index.htmlindex.txt /cgi-bin/index.pl
这样的设置将导致在
index.html或
index.txt都不存在的情况下执行CGI脚本
/cgi-bin/index.pl。
DirectorySlash 指令
说明 | 打开或关闭目录结尾斜线(/)自动补全功能 |
---|---|
语法 | DirectorySlash On|Off |
默认值 | DirectorySlash On |
作用域 | server config, virtual host, directory, .htaccess |
覆盖项 | Indexes |
状态 | 基本(B) |
模块 | mod_dir |
兼容性 | 仅在 Apache 2.0.51 及以后的版本中可用 |
DirectorySlash指令决定
mod_dir是否通过在请求的URL结尾补上"/"使其重定向到其所指向的目录。
典型的,如果用户请求一个结尾没有"/"的资源,并且该资源指向一个目录,
mod_dir将通过在请求的URL结尾补上"/"使其重定向到其所指向的目录。默认开启自动补全功能有以下原因:
用户最后使用了规范的URL来请求资源。
mod_autoindex将会正确工作。因为它不会自动补全路径,所以将会指向错误的路径。
DirectoryIndex将只评估有"/"结尾的目录。
html页面中的相对URL引用将会正确工作。
如果你不希望这个自动补全功能生效,并且不在乎上述原因,你可以关闭它:
# 请参见下面的安全警告 <Location /some/path> DirectorySlash Off SetHandler some-handler </Location>
安全警告
关闭目录自动重定向可能会导致信息泄漏。考虑mod_autoindex被激活(
Options +Indexes)并且
DirectoryIndex也正确设置到一个资源(比如:
index.html)同时没有其他处理器用于URL的情况。此时,以"/"结尾的URL将得到
index.html文件,而不以"/"结尾的请求将得到目录列表。
相关文章推荐
- 导出当前目录下所有文件的路径到index.html
- Shell 命令行,生成当前文件夹目录索引 index.html 文件
- tp3.2.3 解决http://lx.com/后必须加index.php才能访问的问题,配置文件中忘了加index index.php index.html 等默认文件
- apache在没有index.html时显示目录文件列表
- nodejs的require会寻找目录下默认的index文件,如果只提供目录路径的话
- python输出当前目录下index.html文件路径的方法
- inode与block;文件与目录的关系
- 获取一个目录下文件扩展名为txt或htm或html的文件的几种方法
- Wordpress源码分析 目录结构-文件调用关系(1)
- vue根目录下的index.html中的id="app"与src目录下的App.vue中的id="app"为什么不会冲突
- 攻城狮在路上(叁)Linux(十五)--- 文件与目录的默认权限与隐藏权限
- 招商银行-快乐E购:无默认文档/未禁止目录浏览/备份文件随意下载
- openwrt各种默认配置文件所在目录
- 网页html制作目录文件及CSS命名规范总结
- 头文件和源文件在不同目录情况下 Makefile自动推导依赖关系的实现
- lnmp一键安装之后网站的配置(如mysql文件的存放位置,更改网站默认目录等...)
- vue-cli打包之后的dist文件无法运行index.html
- Linux系统下Apache日志文件设置、更改默认网站目录、防止php木马跨站设置、禁止空主机头
- VS2012如何在解决方案中包含默认的头文件目录
- mysql数据库文件默认保存目录