一、禁止 Apache 显示目录索引
方法1、修改Apache配置文件[apache2.conf]
# sudo vi /etc/apache2/apache2.conf
# 没有的话,可以尝试
# sudo vi /etc/apache2/sites-available/000-default.conf
# 还没有的话,可以尝试
# sudo vi /etc/apache2/httpd.conf
(1)目录配置
<Directory /home/www">
#Options Indexes FollowSymLinks
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
将 Options Indexes FollowSymLinks 改成 Options FollowSymLinks 即可以禁止 Apache 显示该目录结构。
解释:Indexes 的作用就是当该目录下没有指定 index.html 文件时,就显示目录结构,去掉 Indexes ,Apache 就不会显示该目录的列表了。
(2)虚拟机配置
<virtualhost *:80>
ServerName domain
ServerAlias domains
DocumentRoot /home/www
CustomLog /home/www/logs/access.log combined
DirectoryIndex index.php index.html
<Directory /home/www>
Options +Includes -Indexes
AllowOverride All
Order Deny,Allow
Allow from All
</Directory>
</virtualhost>
此处,在Indexes前面加上 – 符号也是可以禁止 Apache 显示该目录结构。
解释:在Indexes前,加 + 代表允许目录浏览;加 – 代表禁止目录浏览。
方法2、修改.htaccess文件
在网站根目录修改 .htaccess 文件,增加如下代码(若无.htaccess 文件则新建):
<Files *>
Options -Indexes
</Files>
解释:在Indexes前,加 + 代表允许目录浏览;加 – 代表禁止目录浏览。
参考
https://justcode.ikeepstudying.com/2018/02/linux-apache%E7%B4%A2%E5%BC%95%EF%BC%88%E7%9B%AE%E5%BD%95%E6%B5%8F%E8%A7%88%EF%BC%89%E8%AE%BE%E7%BD%AE-%E7%A6%81%E6%AD%A2-apache-%E6%98%BE%E7%A4%BA%E7%9B%AE%E5%BD%95%E7%B4%A2%E5%BC%95-%E8%87%AA/