确保 Apache web 服务器安全 是最重要的任务之一,特别是在你的网站刚刚搭建好的时侯。

比方说,如果你 Apache 服务目录 (/var/www/tecmint 或 /var/www/html/tecmint) 下创建一个名为tecmint 的目录,并且忘记在该目录放置 index.html,你会惊奇的发现所有访问者都可以在浏览器输入http://www.example.com/tecmint 来完整列举所有在该目录中的重要文件和文件夹。

本文将为你展示如何使用 .htaccess 文件禁用或阻止 Apache 服务器目录列举。

以下便是不存在 index.html ,且未采取防范措施前,目录的列举的情况。

Apache 禁止目录列举的方法

首先,.htaccess (hypertext access) 是一个文件,它可以让站点管理员控制服务器的环境变量以及其他的重要选项,用以增强他/她的站点功能。

使用这一简单方法,在站点目录树中的任意/每个目录创建 .htaccess 文件,以便为站点根目录、子目录和其中的文件提供保护支持。

首先要 Apache 主配置文件中为你的站点启用 .htaccess 文件支持。

方法一 修改apache配置

然后寻找以下部分,其中 Options Indexes FollowSymLinks 指令必须设置为 Options FollowSymLinks。

1
2
3
4
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>

方法二 修改.htaccess文件方法

打开.htaccess文件

添加一下代码就可以禁止列出目录的操作

1
2
3
<Files *>
Options -Indexes
</Files>