宝塔面板怎么关闭目录列表
关掉目录列表后,别人访问你网站里没有首页文件的目录时,只会看到 403 拒绝访问,而不是一张把所有文件名都列出来的清单。下面按 Nginx 和 Apache 两种情况分别说清楚怎么改。
第一步:先确认目录列表确实是开着的
这一步是为了避免改错地方,确认问题真实存在。用浏览器访问你的站点,再随便拼一个不存在的目录,比如 http://你的域名/abc/。如果页面标题或正文出现 Index of / 并列出文件名,就说明 autoindex(Nginx)或 Options Indexes(Apache)被打开了。也可以用命令行确认:
curl -I http://你的域名/abc/
返回 200 且页面是文件清单,就是开的;返回 403 Forbidden 说明本来就是关闭的。
注意:有些站点是访问根目录时才列出文件,根目录没有
index.html、index.php才会触发,测的时候两个都试一下。
第二步:Nginx 站点在配置文件里关闭 autoindex
这一步要做什么:在你的站点配置里把 autoindex 关掉。做完后该站点的目录列表立即消失。
入口位置:登录宝塔面板(以 8.x / 9.x 为例)→ 左侧菜单「网站」→ 在站点列表找到目标站点 → 点该行右侧的「设置」→ 弹窗左侧选「配置文件」。
在弹出的配置文件里按 Ctrl+F 搜索 autoindex:
- 如果找到
autoindex on;,直接改成autoindex off;,或者把这一行整行删掉。 - 如果完全搜不到,就在
root /www/wwwroot/你的站点目录;这一行的下面,手动加一行:
autoindex off;
改完点右下角「保存」。宝塔保存后会自动重载 Nginx,不需要手动重启。
注意:如果配置文件里有多个
location块(比如伪静态、反向代理单独写的块),要检查每个块里有没有单独的autoindex on;,只改一处可能不生效。
第三步:Apache 站点把 Indexes 去掉
这一步针对的是用 Apache 跑的站点,原理不同,改的是 Options。
入口位置:同样在「网站」→ 站点右侧「设置」→ 左侧「配置文件」。
找到类似下面这段:
<Directory /www/wwwroot/你的站点目录>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
如果 Options 后面带 Indexes(例如 Options Indexes FollowSymLinks),把它改成:
Options FollowSymLinks
或者显式写成 Options -Indexes,保存即可。
如果不想动主配置,也可以在站点根目录新建 .htaccess 文件,写入一行 Options -Indexes。
注意:
.htaccess要生效,前提是上面那段里的AllowOverride是All;如果是None,.htaccess会被无视。
第四步:想一次性关掉所有站点(可选)
如果服务器上有几十个站点,一个个改太慢,可以在全局配置里关。
Nginx:左侧「软件商店」→「已安装」→ 找到 Nginx → 点「设置」→「配置修改」,在 http { 和 } 之间加一行 autoindex off;,保存并重载配置。
Apache:编辑 /www/server/apache/conf/httpd.conf,把里面出现的 Options Indexes 改成 Options -Indexes,保存后重载。
第五步:验证结果
回到浏览器,用 Ctrl+F5 强制刷新刚才那个目录地址。出现 403 Forbidden 或跳转到首页,就说明生效了。如果还是老样子,按顺序排查:
- 站点套了 CDN 或云防火墙,去对应控制台清一次缓存;
- 浏览器用了强缓存,换无痕窗口再试;
- Nginx 没自动重载,去「软件商店 → Nginx → 重载配置」手动点一次。
注意:关闭目录列表只是第一步。顺手检查一下站点根目录有没有
.git、.env、backup.zip、www.zip这类文件,这些即使不列目录,只要知道文件名也能直接下载,建议一并删掉或移出网站目录。
小结
- 目录列表在 Nginx 里由
autoindex控制,改成autoindex off;即可,默认其实就是 off,出现列表多半是被人手动开过。 - Apache 里由
Options Indexes控制,改成Options -Indexes或直接去掉Indexes。 - 改的位置是宝塔「网站 → 站点 → 设置 → 配置文件」,保存后自动重载,不用重启服务器。
- 全局关闭走「软件商店 → Nginx → 配置修改」的
http段,适合站点多的情况。 - 关闭后正常表现是 403,不是 404,别误以为没生效。
- 记得同步清理网站目录下的备份包、
.git、.env等敏感文件。
原文链接:https://www.gj0.com/thread-673.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。