首页 > 代码库 > 配置apache之目录的索引

配置apache之目录的索引

对于一个web站点来说,用户最常使用的访问方式是输入 http://www.jonsk.com  而不是 http://www.jonsk.com/index.html ,因此这样会有一个问题,就是服务器只会明白这个链接找的是自己,却不知道这个链接所要查找自己计算机上的哪个文件或是何种资源,从而返回一个文件或资源没有找到的错误信息(404错误)。为了解决这个问题,Apache提供了mod_dir模块mod_autoindex模块,管理员可以为自己的服务器提供索引支持,更方便地为用户服务。

Apache中索引分为两种情况,一种是由用户编写一个索引文件,它的名字有很多,在Unix/Linux中它的名字通常是 index.html或是以index开头的其他脚本语言,例如,index.php,index.cgi。另一种情况则是由Apache服务器来生成一个目录列表,以完成对目录的索引。

mod_dir模块

mod_dir模块提供了实现用户指定索引文件的功能,你只需要在httpd.conf中加载mod_dir模块并使用mod_dir模块提供的DirectoryIndex指令进行指定就可以了,例如:

DirectoryIndex指令中可以指定多个索引文件,DirectoryIndex指令会按你给出的索引文件顺序在DocumentRoot指令所定义的根目录中进行匹配,在上面的例子中,当index.html文件没有找到的时候,DirectoryIndex指令会接着查找index.php文件。当然你也可以使用绝对路径来指定其他位置,例如:

/cgi-bin/index.cgi

在使用了mod_dir模块后,如果用户还是使用类似于 http://www.jonsk.com 这样的连接来访问服务器,mod_dir模块会向用户发出一个类似于 http://www.jonsk.com/index.html 的重定向请求,来指导用户转到正确的地址上,当然这个过程无须用户自己操作。

mod_autoindex模块

mod_autoindex模块就像它的名字“自动索引”一样,当之前提到的mod_dir模块指定一个索引文件没有被找到的时候,只要你的apache加载了mod_autoindex模块,那么mod_autoindex模块会自动返回一个非常简单的目录索引。如果你需要更加复杂的目录索引,mod_autoindex模块也可以满足你的要求,它有非常多的设置,通过这些设置可以指定图标,文件名宽度,页眉,页脚等页面风格。

Apache在extra目录中提供了一个httpd-autoindex.conf的配置文件,只需要启用它就可以满足大部分的需要了。在httpd.conf中加载 mod_autoindex模块并取消关于#Include conf/extra/httpd-autoindex.conf这一行的注释就可以了。

Include conf/extra/httpd-autoindex.conf

这样Apache就可以加载并使用默认的目录索引配置。另外,IndexOptions指令是mod_autoindex模块中最重要的指令,通过它的参数,可以配置目录索引的大量选项(这个就不做过多介绍了,看书看文档)。

配置apache之目录的索引