开启 HTTPS 后出现 ERR_TOO_MANY_REDIRECTS?一文解决 SSL 循环跳转问题

网站启用 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 或反向代理未正确传递协议头

CloudflareNginx 没有传递 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 顺利启用、网站稳定访问。

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注