网站启用 HTTPS 后,页面却无法正常访问,浏览器提示 “ERR_TOO_MANY_REDIRECTS”,这通常意味着站点陷入了 SSL 重定向循环。本文会讲解错误产生的原因,并排查与解决这个问题。
一、什么是 ERR_TOO_MANY_REDIRECTS?
ERR_TOO_MANY_REDIRECTS(重定向过多)是浏览器为保护用户跳转安全所触发的错误。表示页面不断地在不同的 URL 之间跳转,形成了死循环,最终浏览器中止加载。
启用 HTTPS 后出现这个错误,会与下面的情况有关:
HTTP 与 HTTPS 之间反复重定向
配置了多个互相冲突的重定向规则
CDN、缓存或插件缓存未更新
WordPress 配置或主机端设置错误
二、常见原因解析
1. WordPress 设置错误
站点地址(URL)没有设置为 HTTPS,导致 WordPress 自动把 HTTP 重定向到 HTTPS,而服务器又将 HTTPS 重定向回 HTTP。
2. .htaccess 重定向冲突
多次设置了 RewriteRule,或者在插件、主机控制面板中也启用了相同重定向逻辑,造成循环。
3. CDN 或反向代理未正确传递协议头
如 Cloudflare、Nginx 没有传递 X-Forwarded-Proto,应用层误判当前协议为 HTTP。
4. 缓存插件未刷新
WP Super Cache、LiteSpeed Cache 等缓存插件还保留了旧的 HTTP 版本跳转逻辑。
三、解决步骤全指南
步骤 1:临时禁用插件
登录 FTP 或主机面板
进入 /wp-content/plugins/ 目录将缓存插件文件夹(如 litespeed-cache)重命名为 litespeed-cache-disabled
刷新页面,确认是否跳转错误消失
如果错误消失,说明问题来自缓存插件。清除缓存或重新配置就可以了。
步骤 2:检查 WordPress 地址
登录 WordPress 后台
前往【设置】>【常规】
确保 WordPress 地址(URL)和站点地址(URL)均为 https:// 开头保存更改并刷新页面
建议使用 https://yourdomain.com 格式,避免混合使用 www 和非 https。
步骤 3:修复 .htaccess 中的重定向
打开根目录下的 .htaccess 文件(若使用 Apache):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
注意不要重复添加类似的重定向代码,保留一份有效规则就可以。
步骤 4:检查服务器 Nginx 或反向代理设置
如果使用 Nginx 或宝塔面板部署,确认以下设置:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
确保没有在上游或代理服务器中形成 HTTP→HTTPS→HTTP 的循环传递。
四、最终确认:清除所有缓存
清除 WordPress 缓存插件缓存
清除 CDN(如 Cloudflare)缓存
清除浏览器缓存或使用无痕模式重新访问网站
五、预防建议
开启 HTTPS 后统一设置 WordPress 与服务器规则
避免多重跳转设置(CDN/插件/服务器同时设置)
开启缓存插件前先测试重定向是否正常
使用 SSL 检测工具如 Why No Padlock 检查 HTTPS 状态
总结
ERR_TOO_MANY_REDIRECTS 是 HTTPS 网站中常见但完全可控的问题。理清 WordPress 配置、服务器重定向逻辑和 CDN 设置,可以快速定位并解决这一错误,让SSL 顺利启用、网站稳定访问。