如何在Ubuntu系统的Apache2中禁用目录文件列表功能?
嘿,这个问题我太熟悉了!在Ubuntu系统的Apache2里禁用目录自动列表功能,主要有两种常用方式,按需选择就行:
方法一:针对单个站点禁用(推荐)
这种方式不会影响服务器上的其他站点,是更灵活的做法:
- 首先打开你要修改的站点配置文件,默认站点的路径是
/etc/apache2/sites-available/000-default.conf,如果是自己创建的站点,就找对应的.conf文件。用编辑器打开的话,比如执行:sudo nano /etc/apache2/sites-available/your-site.conf - 在配置文件里找到对应站点根目录的
<Directory>块,比如<Directory /var/www/your-site-root>。找到Options开头的那一行:- 如果原本的行里包含
Indexes,把它删掉,或者改成Options -Indexes(减号代表禁用该选项)。比如原来的是Options Indexes FollowSymLinks MultiViews,修改后变成Options -Indexes FollowSymLinks MultiViews - 如果没有
Options行,直接添加一行Options -Indexes就好
- 如果原本的行里包含
- 保存并退出编辑器(nano里按
Ctrl+O保存,Ctrl+X退出),然后重启Apache2让配置生效:sudo systemctl restart apache2
方法二:全局禁用(影响所有站点)
如果你希望服务器上所有站点都禁用目录列表,可以修改全局配置:
- 打开Apache的全局配置文件:
sudo nano /etc/apache2/apache2.conf - 找到
<Directory /var/www/>这个块,同样修改Options行,移除Indexes或者改成Options -Indexes FollowSymLinks - 保存后重启Apache2:
sudo systemctl restart apache2
额外注意点
- 站点配置里的
Options设置优先级高于全局配置,所以如果全局开了但单个站点禁用,会以站点配置为准 - 如果你的站点启用了
.htaccess文件,并且里面有相关Options设置,那.htaccess的配置会覆盖站点和全局配置。这种情况下需要在.htaccess里添加Options -Indexes来禁用目录列表
内容的提问来源于stack exchange,提问作者user794322
相关产品推荐
相关产品推荐

