从 HTTP 切换到 HTTPS 对于保护网站连接至关重要,但错误的重定向可能会导致 ERR_TOO_MANY_REDIRECTS, 、页面显示异常或混合内容警告。.
这个 HTTP 到 HTTPS 重定向指南 介绍了如何在 Apache 和 Nginx 中配置永久重定向、排查 WordPress 重定向循环问题,以及在启用 SSL 后修复不安全的资源。.
什么是 HTTP 到 HTTPS 的重定向?
HTTP 到 HTTPS 的重定向会将访问者从未加密的 URL 引导至其安全的 HTTPS 对应地址。.
例如:
http://example.com/page/
→ https://example.com/page/
一个永久的 301重定向 在完成 HTTPS 迁移后,通常应设置该状态码。它会告知浏览器和搜索引擎,该资源已永久迁移。.
简答: 安装有效的 TLS 证书,配置一条一致的重定向规则,更新内部 URL,并验证页面加载时是否存在不安全的资源或重定向循环。.

1. 首先检查您的 SSL 证书
在配置重定向之前,请确认 HTTPS 能否直接访问:
https://example.com
请确认证书是否有效、是否与主机名匹配,以及是否包含所需的 www 或非 www 变体。.
如果 HTTPS 在重定向前出现错误,请先修复证书或服务器配置。.
如遇证书续期问题,请参阅我们的 Let's Encrypt SSL 自动续期故障排除指南.
2. 在 Apache 中配置 HTTP 到 HTTPS 的重定向
对于使用 .htaccess 与 mod_rewrite 启用后,一条常见的规则是:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
这会将 HTTP 请求重定向到相应的 HTTPS 网址。.
然而,在反向代理或CDN之后,即使访问者使用HTTPS连接,Apache仍可能接收HTTP流量。在这种情况下,一个基本的HTTPS条件可能会导致循环。.
请使用您的托管平台推荐的、支持代理的配置,而不是添加会产生冲突的规则。.
3. 在 Nginx 中配置 HTTP 到 HTTPS 的重定向
在 Nginx 中,HTTP 重定向通常在 80 端口的服务器块中进行配置:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
您的 HTTPS 服务器块必须使用相应的证书单独处理 TLS 连接。.
编辑完配置后,请对其进行验证:
sudo nginx -t
如果验证成功,请重启 Nginx:
sudo systemctl reload nginx
在未了解各层之间如何交互的情况下,请避免在 CDN、负载均衡器、Web 服务器和应用程序层分别独立添加相同的重定向。.
4. 修复 ERR_TOO_MANY_REDIRECTS 错误
当两条或多条规则不断将浏览器在不同URL之间来回跳转时,就会发生重定向循环。.
常见原因包括:
- HTTP 和 HTTPS 规则冲突。.
- WordPress 网站 URL 不正确。.
- 通过 HTTP 连接到源服务器的 CDN SSL 模式。.
- 插件和服务器配置中存在重复的重定向。.
- www 与非 www 规范化之间的冲突。.
使用此命令检查重定向响应:
curl -I http://example.com
关于重定向链:
curl -IL --max-redirs 10 http://example.com
查找重复项 位置 标头或交替使用的 HTTP 和 HTTPS URL。.
如果使用 CDN,请确认其源服务器连接模式与您的 Web 服务器的 HTTPS 规则兼容。.
5. 修复 WordPress 的 HTTPS 重定向问题
在 WordPress 中,请检查 “设置” → “通用” 并确认“WordPress 地址”和“网站地址”是否使用了预期的 HTTPS 网址。.
如果无法访问仪表盘,管理员可以在 wp-config.php:
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
只要定义了这些设置,它们就会覆盖相应的数据库选项。但它们无法修复错误的反向代理 HTTPS 检测。.
在添加额外重定向之前,请检查 SSL 插件、缓存规则和 CDN 配置。.
更换主机时,请按照我们的 WordPress 零停机迁移指南 以减少配置错误。.
6. 如何修复混合内容警告
混合内容 当 HTTPS 页面通过不安全的 HTTP URL 请求资源时,就会发生这种情况。.
例如:图片、脚本、样式表、字体和嵌入式内容。.
打开浏览器的开发者工具,检查“控制台”中是否出现混合内容提示。.
然后,将不安全的资源引用更新为 HTTPS,前提是目标地址支持 HTTPS。.
对于 WordPress,请检查主题设置、插件配置、硬编码的 URL 以及存储的内容。.
在 WordPress 数据库中替换 URL 时,请使用支持序列化的工具(如 WP-CLI),而不是直接通过原始 SQL 文本进行替换。.
示例:
wp search-replace 'http://example.com' 'https://example.com' --all-tables-with-prefix --dry-run
在执行实际替换之前,请检查模拟运行的结果并备份数据库。.
请不要假设每个第三方 HTTP 资源都支持 HTTPS。必要时,请替换或删除不兼容的资源。.
7. 验证重定向、规范链接和内部链接
修改配置后,请确认以下内容:
- HTTP 页面会重定向到相应的 HTTPS 页面。.
- 重定向链很短,且不包含循环。.
- 规范 URL 使用 HTTPS。.
- XML 网站地图列出了首选的 HTTPS 网址。.
- 内部链接和资源可避免不必要的 HTTP 重定向。.
- 重要页面在加载时不会出现混合内容错误。.
关于内容架构,请阅读我们的 SEO内部链接指南.
8. 在什么情况下,托管主机服务能让HTTPS更简单?
对于需要管理多个网站的管理员而言,SSL 安装、重定向、CDN 设置以及证书续期可能会带来持续的维护工作。.
SiteGround 以及 GreenGeeks 在评估具备 SSL 管理功能的 WordPress 托管环境时,这些都是值得考虑的选项。.
Hostwinds 以及 UltaHost 在选择具有不同管理和支持要求的托管或VPS环境时,这些方面也值得进行比较。.
在选择服务提供商之前,请核实其当前的 SSL 功能、控制面板选项、支持范围以及续订条款。.
有关更广泛的主机选择决策,请参阅我们的 托管型与非托管型主机对比.
HTTP 到 HTTPS 迁移检查清单
- 验证证书及 HTTPS 主机名的覆盖范围。.
- 请选择一个首选的主机名。.
- 配置永久性的 HTTP 到 HTTPS 重定向。.
- 检查 CDN 和反向代理设置。.
- 更新 WordPress 网址和混合内容资源。.
- 测试重定向链、规范标签和网站地图。.
如果用户仍然遇到可用性问题,我们的 WordPress 503 错误指南 介绍了相关的服务器端故障排除方法。.
常见问题解答
HTTP 应使用 301 还是 302 状态码将请求重定向到 HTTPS?
进行永久性的HTTPS迁移时,请使用301重定向。当更改确实只是临时性的,则应使用302重定向。.
为什么HTTPS会导致重定向过多?
服务器、CDN、插件或应用程序规则之间的冲突可能会导致请求在不同 URL 之间反复重定向。.
Cloudflare 会导致 HTTPS 重定向循环吗?
是的。某些源服务器连接设置若与源服务器端的 HTTPS 重定向结合使用,可能会导致循环。.
混合内容会影响网站安全吗?
是的。不安全的资源可能会削弱连接安全性,浏览器可能会阻止某些混合内容请求。.
SSL 证书会自动将 HTTP 重定向到 HTTPS 吗?
不。证书可以启用 TLS 连接,但重定向通常需要单独的服务器、CDN 或应用程序配置。.
我应该立即启用 HSTS 吗?
请务必在确认 HTTPS 能在所需的主机名上稳定运行后,再启用 HTTP 严格传输安全 (HSTS)。HSTS 配置不当可能会导致恢复工作变得困难。.
最终裁决
一个可靠的 HTTP 到 HTTPS 的重定向 这不仅仅只是安装一个 SSL 证书那么简单。.
统一配置重定向,修正代理和 WordPress 设置,清除混合内容,并验证规范 URL。.
有效的证书 → 正确的重定向 → 无循环 → 无混合内容 → 安全的网站。.





