WordPress后台出现Too Many Redirects错误的原因排查求助
WordPress后台过多重定向(Too Many Redirects)问题解决指南
问题现状
- WordPress后台触发**Too Many Redirects(过多重定向)**错误,无法正常访问
- 因安全要求和混合内容问题,不能将siteurl设置为HTTP协议
- 数据库wp_options表中将siteurl改为HTTPS后可正常使用,但改回HTTP立刻复发
- 已停用全部插件,无效;删除、替换为正常站点的.htaccess文件也未解决问题
针对性排查与解决步骤
检查服务器/CDN的强制HTTPS配置
- 若用Apache,查看httpd.conf或虚拟主机配置文件,是否存在强制HTTPS的规则,导致HTTP请求被循环重定向
- 若使用CDN服务,检查SSL设置项,比如是否开启了「始终使用HTTPS」「灵活SSL」这类可能引发协议冲突的选项,建议设置为「严格SSL」或「完全SSL」
修改wp-config.php强制HTTPS访问
在网站根目录的wp-config.php文件中添加以下代码,锁定WordPress的HTTPS协议,避免siteurl与访问协议不匹配:define('FORCE_SSL_ADMIN', true); // 若服务器存在反向代理/CDN,需添加以下两行确保HTTPS识别正常 if ($_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { $_SERVER['HTTPS'] = 'on'; } define('WP_HOME','https://你的域名'); define('WP_SITEURL','https://你的域名');替换为正确的HTTPS版.htaccess规则
备份原.htaccess文件后,替换为以下内容(适配WordPress的HTTPS重定向,避免循环):# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # 强制HTTPS重定向,避免循环 RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress清理浏览器缓存与Cookie
浏览器可能缓存了旧的重定向规则,导致服务器修复后仍出现循环错误,清空当前浏览器的缓存及对应域名的Cookie后再测试后台访问。检查数据库相关选项一致性
进入数据库wp_options表,确认home字段与siteurl字段值完全一致,均为HTTPS开头;同时排查是否存在其他插件/主题遗留的自定义配置项,是否有强制HTTP的设置。
内容的提问来源于stack exchange,提问作者KIPKOECH
相关产品推荐
相关产品推荐

