温馨提示×

如何禁止ubuntu apache2目录浏览

小樊
37
2026-08-16 20:49:22
栏目: 智能运维

Ubuntu 的 Apache2 中,禁止目录浏览(目录列表)通常有以下几种方式,最常用的是 关闭 Indexes 选项


一、最常用方法:修改 Apache 配置(推荐)

方法 1:修改虚拟主机配置(推荐)

编辑你的站点配置,例如:

sudo nano /etc/apache2/sites-available/000-default.conf

或你的自定义配置文件。

<Directory> 段中,确保 没有 Indexes,或显式关闭它:

<Directory /var/www/html>
    Options -Indexes +FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

✅ 关键点是:

Options -Indexes
  • -Indexes:禁止目录浏览
  • +FollowSymLinks:允许符号链接(可选)

保存后重启 Apache:

sudo systemctl restart apache2

方法 2:修改 Apache 全局配置

编辑主配置:

sudo nano /etc/apache2/apache2.conf

找到类似:

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

改为:

<Directory /var/www/>
    Options -Indexes +FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

然后重启 Apache。


二、使用 .htaccess 文件(适合无法修改主配置的情况)

确保 Apache 允许 .htaccess 覆盖:

AllowOverride All

然后在网站根目录创建或编辑 .htaccess

nano /var/www/html/.htaccess

添加:

Options -Indexes

✅ 无需重启 Apache,立即生效。


三、验证是否生效

访问一个 没有 index 文件(如 index.html / index.php)的目录

http://your-server-ip/testdir/
  • ✅ 禁止成功:显示 403 Forbidden
  • ❌ 未生效:仍然显示文件列表

四、常见误区

❌ 只想删除 index.html 却看到目录列表
✅ 必须显式禁用 Indexes

❌ 修改配置后没重启 Apache
✅ 一定要执行:

sudo systemctl restart apache2

五、总结(最推荐)

最佳实践

Options -Indexes

放在:

  • 虚拟主机配置中(生产环境首选)
  • .htaccess(灵活但略慢)

如果你愿意,我可以帮你检查 具体配置文件内容,直接告诉你该怎么改。

0