温馨提示×

如何禁止Apache2目录浏览

小樊
34
2026-07-31 23:37:29
栏目: 编程语言

要禁止 Apache2 的目录浏览(Directory Listing),也就是防止用户直接访问目录时看到文件列表,可以按下面几种方式操作。


✅ 方法一:修改 Apache 配置文件(推荐)

1️⃣ 找到 Apache 配置文件

常见位置:

  • Ubuntu / Debian:/etc/apache2/apache2.conf
  • CentOS / RHEL:/etc/httpd/conf/httpd.conf

2️⃣ 查找并修改 Directory 配置

找到类似下面的配置:

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

3️⃣ 删除或关闭 Indexes

Indexes 去掉:

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

-Indexes 表示 禁止目录浏览


✅ 方法二:使用 .htaccess 文件(适合虚拟主机)

如果你无法修改主配置文件,可以在网站根目录(如 /var/www/html)下创建或修改 .htaccess 文件:

Options -Indexes

⚠️ 前提条件:

  • Apache 配置中该目录允许 AllowOverride OptionsAllowOverride All

✅ 方法三:只针对某个目录禁止

<Directory /var/www/html/uploads>
    Options -Indexes
</Directory>

✅ 重启 Apache 使配置生效

# Ubuntu / Debian
sudo systemctl restart apache2

# CentOS / RHEL
sudo systemctl restart httpd

✅ 禁止后的效果

访问目录(如 http://example.com/uploads/)时:

  • ❌ 不再显示文件列表
  • ✅ 返回 403 Forbidden404 Not Found(取决于配置)

✅ 补充:返回 403 而不是 404(可选)

<Directory /var/www/html/uploads>
    Options -Indexes
    Require all denied
</Directory>

如果你愿意,可以告诉我:

  • 你的系统(Ubuntu / CentOS)
  • Apache 版本
  • 是否是虚拟主机(vhost)

我可以给你一份完全可直接用的配置示例

0