宝塔面板怎么关闭目录列表

chinaz
chinaz 初级会员超兽战士
发布于 2026-10-08 01:37 ·1 浏览 ·0 回复

关掉目录列表后,别人访问你网站里没有首页文件的目录时,只会看到 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 等敏感文件。
版权声明:本文来自 GJ站长论坛《宝塔面板怎么关闭目录列表》
原文链接:https://www.gj0.com/thread-673.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~