温馨提示×

CentOS怎么禁止Apache目录浏览

小樊
36
2026-07-20 09:11:04
栏目: 智能运维

CentOS 上禁止 Apache 目录浏览(目录列表),可以通过以下几种方式实现,最常用的是修改 Apache 配置或 .htaccess


方法一:修改 Apache 主配置或虚拟主机配置(推荐)

1. 编辑 Apache 配置文件

配置文件位置可能是:

  • CentOS 7/8 常用:
    • /etc/httpd/conf/httpd.conf
    • /etc/httpd/conf.d/*.conf
  • 虚拟主机配置文件中
vim /etc/httpd/conf/httpd.conf

vim /etc/httpd/conf.d/your-site.conf

2. 找到或添加 <Directory> 配置

例如:

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

关键点:-Indexes

  • Indexes:开启目录浏览
  • -Indexes:禁止目录浏览

3. 重启 Apache

systemctl restart httpd

方法二:使用 .htaccess 文件(适用于虚拟主机或共享环境)

1. 确保 Apache 允许 .htaccess

<Directory> 中确认:

AllowOverride All

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

vim /var/www/html/.htaccess

添加以下内容:

Options -Indexes

3. 重启 Apache(如果修改了主配置)

systemctl restart httpd

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

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

验证是否生效

在浏览器访问一个 没有默认首页(如 index.html / index.php) 的目录:

  • ✅ 禁止成功:显示 403 Forbidden
  • ❌ 未生效:仍然显示文件列表

常见默认首页文件名

如果希望目录不触发浏览,确保存在以下之一:

index.html
index.php
index.htm
default.html

总结

方式 推荐程度 说明
修改 Apache 配置 ⭐⭐⭐⭐⭐ 最安全、最稳定
.htaccess ⭐⭐⭐ 灵活,但性能略低
指定目录 ⭐⭐⭐⭐ 精细控制

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

  • CentOS 版本(7 / 8 / Stream)
  • Apache 版本
  • 是否是虚拟主机 / 宝塔 / LNMP 环境

我可以给你更精确的配置示例。

0