Apache AH00124内部重定向超限问题排查与方案咨询
解决Apache AH00124递归重定向及目录访问控制问题
问题根源
AH00124错误是因为访问无默认索引文件的目录时,Apache反复尝试内部重定向到错误页面,触发递归循环超出限制。结合你的目录访问需求,最优方案是通过.htaccess规则同时解决递归重定向和访问控制问题,无需额外添加索引页或错误页。
具体实现步骤
根据你各目录独立配置.htaccess的架构,在api.mydomain.com根目录的.htaccess中添加以下规则:
# 禁用目录列表,避免Apache自动生成索引页触发重定向 Options -Indexes # 开启重写引擎 RewriteEngine On # 禁止访问/api/目录本身 RewriteRule ^api/$ - [R=403,L] # 禁止访问/api/v1/目录本身 RewriteRule ^api/v1/$ - [R=403,L] # 允许/api/v1/images/和/api/v1/0.40/目录,禁止/api/v1/下其他未授权路径 RewriteRule ^api/v1/(?!images/|0\.40/).*$ - [R=403,L]
规则说明
Options -Indexes:关闭Apache的目录列表功能,访问无索引文件的目录时直接返回403,从根源避免递归重定向触发。RewriteRule ^api/$ - [R=403,L]:精准匹配/api/目录的请求,返回403禁止访问,L标记终止后续规则执行。RewriteRule ^api/v1/$ - [R=403,L]:同理,禁止直接访问/api/v1/目录。RewriteRule ^api/v1/(?!images/|0\.40/).*$ - [R=403,L]:使用负向预查,仅允许/api/v1/images/和/api/v1/0.40/及其子路径的访问,其余/api/v1/下的请求全部返回403。
验证与注意事项
- 保存
.htaccess后,无需重启Apache(部分环境可能需要刷新缓存),直接测试访问:- 访问
api.mydomain.com/、api.mydomain.com/api/、api.mydomain.com/api/v1/应返回403 - 访问
api.mydomain.com/api/v1/images/、api.mydomain.com/api/v1/0.40/应正常访问(若目录内有合法资源)
- 访问
- 确保
/api/v1/images/和/api/v1/0.40/目录的.htaccess无冲突规则,保持默认配置即可。
内容的提问来源于stack exchange,提问作者rolinger
相关产品推荐
相关产品推荐

