Cloudflare 页面规则如何设置强制 HTTPS 跳转避免循环

文章导读
对于大多数使用 Cloudflare 接入的网站,建议直接在 SSL/TLS 设置中开启「Always Use HTTPS」开关,而不是依赖页面规则做跳转,这样能从根本上减少配置冲突导致的重定向循环。若必须使用页面规则,需严格匹配 HTTP 协议头并避免与全局设置冲突。
📋 目录
  1. A 核心方案:SSL/TLS 全局设置(推荐)
  2. B 备选方案:页面规则 (Page Rules) 具体配置
  3. C 验证与排查步骤
  4. D 常见错误与处理
A A

对于大多数使用 Cloudflare 接入的网站,建议直接在 SSL/TLS 设置中开启「Always Use HTTPS」开关,而不是依赖页面规则做跳转,这样能从根本上减少配置冲突导致的重定向循环。若必须使用页面规则,需严格匹配 HTTP 协议头并避免与全局设置冲突。

先说结论:优先使用 SSL/TLS 原生开关,页面规则仅作为特殊场景的补充手段。

  • 适合:所有通过 Cloudflare DNS 解析且云端代理(橙色云朵)开启的域名
  • 先准备:确认源站服务器已正确配置 HTTPS 证书,且 SSL/TLS 加密模式非「Flexible」
  • 验收:使用 curl 命令检查 HTTP 请求是否返回 301 且无循环,浏览器地址栏无红色警告

核心方案:SSL/TLS 全局设置(推荐)

这是 Cloudflare 官方推荐的最稳定方式,优先级高于页面规则,且处理效率更高。

Cloudflare 页面规则如何设置强制 HTTPS 跳转避免循环
  1. 登录 Cloudflare 控制台,选择目标域名。
  2. 左侧菜单点击「SSL/TLS」,在概述页面将加密模式调整为「Full」或「Full (Strict)」。注意:改为 Full 前需确保源站已安装有效证书,否则会出现 521/526 错误。
  3. 点击「Edge Certificates」标签页,找到「Always Use HTTPS」选项,将其开关拨到 On 状态。
  4. 保存更改,通常秒级生效,无需等待。

备选方案:页面规则 (Page Rules) 具体配置

如果因特殊需求必须使用页面规则(例如仅针对特定子域名强制 HTTPS),请按以下标准配置,避免循环:

  1. 进入「Rules」->「Page Rules」,点击「Create Page Rule」。
  2. URL 匹配:输入 http://example.com/*。务必包含 http:// 协议头,否则可能匹配到 HTTPS 请求导致逻辑混乱。
  3. 选择设置:下拉选择「Always Use HTTPS」。
  4. 冲突检查:如果已开启全局「Always Use HTTPS」,此规则可省略。若同时存在,确保没有另一条规则将 HTTPS 转回 HTTP。
  5. 点击「Save and Deploy」。

验证与排查步骤

配置完成后,务必通过命令行和浏览器双重验证,确保无重定向循环。

1. 命令行验证

在本地终端使用 curl 命令测试,观察返回状态码和 Header:

Cloudflare 页面规则如何设置强制 HTTPS 跳转避免循环
curl -I http://yourdomain.com

正常情况应返回 301 Moved Permanently,且 Location 头指向 https 地址。再次请求 https 地址应返回 200 OK

若需查看详细跳转过程,使用:

Cloudflare 页面规则如何设置强制 HTTPS 跳转避免循环
curl -v http://yourdomain.com

检查输出中是否出现多次 < HTTP/1.1 301 且 Location 在 http 和 https 之间反复切换。

2. 浏览器验证

使用浏览器无痕模式访问 http 地址。按 F12 打开开发者工具,切换到 Network 标签页,刷新页面。检查第一个请求的 Status Code 是否为 301,后续请求是否为 200。

常见错误与处理

  • 重定向循环 (Too Many Redirects):最常见原因是 SSL/TLS 加密模式选成了「Flexible」,但源站强制 HTTPS。解决方法:将 Cloudflare SSL 模式改为「Full」或「Full (Strict)」。
  • 错误 521/526:开启 Full 模式后出现,说明源站证书无效或未安装。解决方法:检查源站 Nginx/Apache 证书配置,或暂时使用「Full (Flexible)」排查(不推荐长期)。
  • HSTS 缓存干扰:如果之前配置错误导致浏览器记录了 HSTS,修复后浏览器可能仍强制跳转。解决方法:清除浏览器 HSTS 设置或等待过期,或使用无痕模式测试。
  • 规则优先级冲突:不要同时保留页面规则跳转和 SSL 设置跳转。虽然通常 SSL 设置优先级更稳,但共存会增加排查难度。建议禁用页面规则中的 HTTP 转 HTTPS 规则。