Apache报AH00124错误:请求超出10次内部重定向限制如何解决?
错误原因
该AH00124报错是Apache内部重定向次数超过默认10次限制触发的,核心问题是根目录与子目录的重写规则顺序不合理、子目录重写规则缺少目标文件存在校验,导致规则被循环触发。
修复步骤
1. 调整根目录.htaccess规则
将HTTPS跳转规则移到所有重写规则最前面,避免动态请求先被路由后再跳转产生不必要的重定向,调整后完整配置如下:
RewriteEngine on Options -Indexes # 优先处理HTTPS跳转 RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$ RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$ RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ CCA\ DCV)?$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # PDF防盗链规则 RewriteCond %{HTTP_REFERER} !^https://(www\.)?website.com [NC] RewriteCond %{HTTP_REFERER} !^https://(www\.)?website.com.*$ [NC] RewriteRule \.(pdf)$ - [F,L] # 应用路由规则 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$ RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ CCA\ DCV)?$ RewriteRule ^(.*)$ /index.php?/$1 [L,QSA]
2. 修复应用目录下的.htaccess规则
新增目标.php文件存在校验,避免不存在的路径重写后反复触发父目录规则,调整后完整配置如下:
Options -Indexes RewriteEngine On RewriteBase /app/ # 仅当目标PHP文件真实存在时才执行重写 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{DOCUMENT_ROOT}/app/$1.php -f RewriteRule ^([^\.]+)$ $1.php [NC,L]
3. 生效验证
修改完成后执行对应命令重启Apache服务(根据服务器发行版选择):
- CentOS/RHEL系列:
systemctl restart httpd - Debian/Ubuntu系列:
systemctl restart apache2
重启后清理浏览器缓存,访问之前报错的链接验证即可。
内容的提问来源于stack exchange,提问作者JianYA
相关产品推荐
相关产品推荐

