安装WPML后WordPress报AH00124重定向超限500错误如何修改.htaccess
问题根因
AH00124重定向超限报错由三个配置冲突直接导致:
.htaccess重复嵌套了两层<IfModule mod_rewrite.c>规则块,Rewrite规则重复加载,执行顺序混乱- 原有HTTPS强制跳转规则缺少反向代理场景的HTTPS状态判断,和WPML的多语言子目录路由逻辑冲突,请求
/uk/、/ru/开头的多语言路径时,会在HTTP转HTTPS、WordPress路由转发、WPML语言路径跳转之间反复触发重定向,直到触达服务器10次的内部递归上限 - 手动添加的多语言路径登录页跳转规则缺少匹配终止标记,会被Rewrite引擎重复匹配执行,放大循环问题
修复方案
- 打开站点根目录下的
.htaccess文件,清空全部原有内容,替换为以下配置:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # 强制HTTPS跳转,兼容反向代理/CDN场景避免循环 RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # 多语言路径登录页跳转,匹配后直接终止重定向流程 RewriteRule ^(ru|uk)/wp-login.php$ /wp-login.php [QSA,L] # BEGIN WordPress # 标记块内内容由WordPress自动维护,手动修改会被覆盖 RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress </IfModule>
- 保存文件后,依次清理浏览器缓存、WordPress全站缓存、WPML多语言缓存,重新访问之前报错的页面验证即可。
额外排查项
如果替换配置后仍存在重定向问题,直接登录WPML后台的「语言」设置页做两项检查:
- 确认语言URL格式选择的是「不同语言使用独立目录」选项
- 确认WordPress地址、站点地址均配置为
https://开头的正式域名,不要残留http://开头的旧地址
内容的提问来源于stack exchange,提问作者Володимир Хоменко
相关产品推荐
相关产品推荐

