You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache使用mod_auth_basic加密的目录在父级页面消失如何解决

Apache受密码保护目录不在父目录列表中显示的解决方法

问题根因

该现象是Apache自动目录索引模块mod_autoindex的默认安全策略导致:默认会过滤掉访问时会返回401(需要认证)、403(禁止访问)的目录/文件,避免泄露受保护资源的存在性,你的密码保护配置本身功能正常。

解决方法

你只需要在对应站点的父目录配置中,给mod_autoindex添加ShowForbidden参数即可,修改步骤如下:

  1. 打开你的httpd.conf配置文件,找到站点根目录对应的<Directory>配置块,示例如下(根据你实际的站点根目录路径调整):
<Directory "/var/www/html">
    # 原有配置保留,比如开启索引的配置
    Options +Indexes
    AllowOverride None
    Require all granted
    
    # 新增这一行配置
    IndexOptions +ShowForbidden
</Directory>
  1. 保存配置文件后,重启Apache服务生效,不同发行版重启命令如下:
  • RHEL/CentOS/Fedora系:systemctl restart httpd
  • Debian/Ubuntu系:systemctl restart apache2

补充:使用.htaccess配置的场景

如果你的站点已经开启了AllowOverride All权限,也可以直接在站点根目录的.htaccess文件中添加IndexOptions +ShowForbidden,修改后无需重启Apache即可生效。

效果说明

调整配置后,受密码保护的bla目录就会正常显示在父目录的列表中,用户点击该目录时仍然会触发密码校验,不会降低原有密码保护的安全性。

内容的提问来源于stack exchange,提问作者Jon000z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:36:03