最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
怎么禁止 Apache 自动列出目录文件(Directory Listing)
时间:2026-06-20 10:34:03 编辑:袖梨 来源:一聚教程网
必须配置 Options -Indexes 禁用目录索引,推荐写法为 Options -Indexes +FollowSymLinks +ExecCGI,并配合 DirectoryIndex 设置入口文件顺序,重启后验证返回 403 才生效。直接在 Apache 的 `
精准禁用 Indexes,别删整行或设 None
关键不是删掉 Options 行,也不是改成 Options None(它会一并关闭 FollowSymLinks、ExecCGI 等必要功能,导致重写失效、PHP 无法执行)。
正确做法是显式移除索引权限,同时保留其他所需能力:
-
推荐写法:
Options -Indexes +FollowSymLinks +ExecCGI -
次选写法:
Options FollowSymLinks ExecCGI(前提是确认你不需要 Indexes,且没其他隐含依赖) - 务必检查所有 `
` 块:主配置( httpd.conf)、虚拟主机(sites-available/或httpd-vhosts.conf)、XAMPP/phpEnv 的额外配置(如httpd-xampp.conf),漏一处就可能被绕过
配合 DirectoryIndex 提升可用性
只关 Indexes,会让无首页的目录返回 403 错误,既影响体验,也容易暴露路径结构。建议同步设置入口文件查找顺序:
- 在同一 `
` 块中添加: DirectoryIndex index.php index.html default.htm - Apache 按顺序找第一个存在的文件;都不存在才返回 403
- 对 WordPress、Laravel 等 PHP 应用,index.php 必须放最前,否则静态页优先会破坏路由机制
验证是否真正生效
改完配置必须重启 Apache(sudo systemctl restart apache2 或 XAMPP 控制面板重启),然后实测:
- 准备一个无
index.*文件的子目录(如/uploads/) - 浏览器访问
http://localhost/uploads/ - 正确响应应为 HTTP 403 Forbidden,页面显示 “You don't have permission to access...”
- 若返回 200 并列出文件,说明配置未生效——常见原因是改错了配置文件位置、没重启服务,或被 `.htaccess` 覆盖
警惕 .htaccess 和 AllowOverride 陷阱
如果项目用了 `.htaccess`(如 Laravel、WordPress),需确保它不会悄悄把 Indexes 加回来:
- 检查对应 `
` 块中的 AllowOverride设置:若不需要运行时重写,设为AllowOverride None;若必须支持,至少设为AllowOverride Options - 打开项目根目录下的 `.htaccess`,搜索
Options +Indexes或Options Indexes,删掉或注释掉 - 注意 Apache 2.4+ 不认旧语法
Order Deny,Allow,`.htaccess` 中若混用会直接报 500 错误,权限控制请统一用Require all denied
相关文章
- 御书屋自由阅读网入口_Po18浓情文直达页面推荐 06-20
- 新御宅屋_海棠书屋自由入口_在线阅读无需注册 06-20
- po18小说阅读网入口_收藏起来的私密可用地址 06-20
- 海棠书屋po18浓情文入口_老用户分享的稳定阅读页 06-20
- 入浓情自由PO18书屋在线看_真正可打开的备用站入口 06-20
- Po18御宅书屋秘书入口_现在还能访问的浓情文页面 06-20