如何禁用网站目录访问(Apache)
问题
以Ubuntu 22.04(其他LTS版本类似)和Apache2服务为例,我们一般会把网站资源放在 /var/www/html
中,又比如把提供给用户下载的安装包放在 download
目录下面,那么最终的下载链接就是:
https://xxx.com/download/abc.apk
这个 download
目录下面可能不只有一个apk,而是很多个资源文件,默认情况下,如果用户好奇打开https://xxx.com/download/,就会直接看见该目录下所有文件,甚至还可以逐级往上查看父目录。
有时候这并不是我们想要的结果,用户可能会看见我们未公开链接的资源,造成一些。
解决
本来问了一下各种GPT,发现给的答案都太麻烦了,而且还不一定靠谱。最终还是从互联网的汪洋中找到了一个简单的办法。
直接编辑Apache的配置文件:
1 | vim /etc/apache2/apache2.conf |
按I进入编辑模式后,找到这部分内容:
1 | <Directory /var/www/> |
把第一行注释掉,改为None,即可:
1 | <Directory /var/www/> |
保存退出后,重启Apache服务就搞定了:
1 | systemctl restart apache2 |
再次访问https://xxx.com/download/,就会出现403警告,但访问目录下最后一级资源链接不受影响。
废话
其实这些配置说明,在Apache官方的文档中都会有用法解释的,耐心找都能找到,只是文档庞大,我们没那么多心思去看,才来看二手文档,就像你现在读到了这里一样。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Pig Cat!
评论