之前的帖子聊了如何修改Apache2默认网页(主页),其实除了遇到默认网页不能加载,我还遇到了一个严重的问题,那就是目录自动索引。
(图源 :pixabay)
自动索引
什么是自动索引呢?简单来讲,就是当一个目录中没有默认网页时,访问这个目录会列出目录下所有内容。
示例:
在有些情况下,上述自动索引会让网站访问变得更加方便,比如我上传一堆文件,不用去做网页,网站自动帮我列举出来,直接点击即可访问。
可是这样会有一些安全隐患,比如我不小心上传了一些重要文件,原本不打算让人看到,但是因为自动索引,全曝光了。
方法一:添加index.html
那么这个问题要如何解决呢?最安全的方法是,给每个目录下放一个index.html
文件。
这样当我们直接访问目录时,就会自动加载这个index.html
文件了,目录下的其它内容自然不会曝光了。
方法二:修改站点配置
但是这样一个一个加index.html
文件太累了,那么有没有简单的办法呢?
一个办法就是修改站点的Apache配置文件(如果有站点ssl配置文件,也记得修改),在其中添加Options -Indexes
1 | <Directory /home/sitexxxx/www> |
重启Apache后,再次访问,就会变成这个样子啦。
方法三:禁用Autoindex 模块
另外一种方法是彻底禁用Autoindex 模块,方法如下:
sudo a2dismod autoindex
之后会出现如下提示:
大意是不应该这么做,如果你确定要这么干,请输入:Yes, do as I say!
,完成后还需要重启Apache:
sudo systemctl restart apache2
但是有趣的是,恢复之前的站点配置文件,再次测试访问,竟然提示:
方法四:使用.htaccess
另外还有一种方法是使用.htaccess
文件,加入如下内容即可:
Options -Indexes
补充说明
尽管上述几个方法都可以达成禁用自动索引的目的,但是需要注意的是Options
指令在站点配置文件和.htaccess
文件中使用,是有优先级的。
简单来讲.htaccess
的设置会覆盖站点配置文件的设置,具体的就不深入分析啦。
另外,尽管有诸多手段,我们用一种就好啦,我还是在站点配置文件中加入Options -Indexes
吧。
参考链接
https://steemit.com/~witnesses type in
oflyhigh
and click VOTE
Vote @oflyhigh via Steemconnect
Thank you!
This page is synchronized from the post: ‘每天进步一点点:关闭网站的自动目录索引功能’