在 Cloudflare 控制台开启 SSL/TLS 设置中的 Always Use HTTPS 开关,或通过页面规则配置 301 转发,前提是将域名 DNS 托管至 Cloudflare 并开启代理状态。
先说结论:Cloudflare 支持在边缘网络层直接完成 HTTP 到 HTTPS 的 301 重定向,无需源站服务器参与配置。
- 适合:已接入 Cloudflare DNS 解析且希望统一管理 HTTPS 强制跳转的域名。
- 先准备:确保域名 NS 记录已修改为 Cloudflare 地址,且 DNS 记录处于橙色云代理状态。
- 验收:使用 curl 命令检查 HTTP 请求是否返回 301 状态码及正确的 Location 头。
快速处理思路
优先使用 SSL/TLS 设置中的强制 HTTPS 功能,若需更复杂的路径控制再使用页面规则。
- 登录 Cloudflare 控制台,选择目标域名。
- 进入 SSL/TLS 设置页面,找到 Edge Certificates 部分。
- 开启 Always Use HTTPS 选项,系统会自动保存并生效。
- 若需特定路径跳转,进入 Rules 页面创建 Page Rule,设置 Forwarding URL 为 301 。
为什么会这样
Cloudflare 作为反向代理层,会在请求到达源站前拦截并处理协议转换。
传统 301 重定向依赖源站 Web 服务器(如 Nginx/Apache)配置,要求请求必须先到达服务器。Cloudflare 的模式是用户请求先到达其全球边缘网络,若配置了重定向规则,Cloudflare 直接返回 301 响应,请求不再继续转发至源站。这意味着即使源站未配置 SSL 证书或未备案,只要流量经过 Cloudflare 代理,即可实现跳转。
分步处理
按顺序检查 DNS 托管状态和 SSL 配置,确保规则能正确匹配流量。
1. 确认 DNS 托管状态
在 Cloudflare 域名概览页,检查 Nameservers 是否显示为 Cloudflare 提供的地址。若未显示,需前往域名注册商处修改 NS 记录。修改后等待 DNS 生效,公开资料中没有看到可靠的量化数据说明具体生效时间,通常需几分钟到数小时。
2. 开启代理状态
进入 DNS 管理页面,确保需要跳转的域名记录(如 A 记录或 CNAME)后的云图标为橙色。若为灰色(DNS Only),Cloudflare 无法拦截 HTTP 流量,重定向规则将失效。
3. 配置强制 HTTPS
进入 SSL/TLS > Edge Certificates,找到 Always Use HTTPS 开关并启用。此操作会自动将所有 HTTP 请求 301 跳转至 HTTPS 版本。
4. 备用方案:页面规则
若需更灵活控制,进入 Rules > Page Rules,创建规则匹配 http://example.com/*,设置 Forwarding URL 为 301,目标地址填写 https://example.com/$1。注意免费计划通常有页面规则数量限制。
怎么验证是否生效
通过命令行工具检查响应头状态码和位置信息。
在终端执行以下命令:
curl -I http://example.com
观察返回结果,若包含 HTTP/1.1 301 Moved Permanently 且 Location 字段以 https:// 开头,则配置成功。若返回 200 或 302,请检查 Cloudflare 缓存或规则优先级。
常见坑
- 代理未开启:DNS 记录处于灰色云状态时,流量不经过 Cloudflare 边缘,规则不生效。
- SSL 模式冲突:若源站无 SSL 证书,Cloudflare SSL/TLS 模式应设为 Flexible,否则可能引发重定向循环错误。
- 缓存干扰:浏览器或本地 DNS 缓存可能导致旧配置残留,验证时建议使用无痕模式或刷新 DNS 缓存。
- 规则数量限制:免费账户页面规则数量有限,优先使用 Always Use HTTPS 全局开关节省配额。
常见问题
开启后会影响 SEO 吗?
301 是永久重定向,搜索引擎会将旧 HTTP 地址权重传递至 HTTPS 地址,有利于 SEO。
为什么 HTTPS 访问正常但 HTTP 不跳转?
检查 DNS 记录是否为橙色代理状态,若未代理则 Cloudflare 无法拦截 HTTP 请求。
源站没有 SSL 证书可以吗?
可以,将 Cloudflare SSL/TLS 加密模式设置为 Flexible,Cloudflare 会与用户建立 HTTPS 连接,与源站保持 HTTP 连接。
修改后多久生效?
Cloudflare 配置通常秒级生效,但受本地 DNS 缓存影响,全球同步可能需要一定时间。
参考来源
- Cloudflare 页面规则实战:无需备案实现域名 301 重定向 (附 DNS 解析避坑指南)
- 利用 Cloudflare 实现未备案域名的 301 重定向全攻略
- 使用 Cloudflare 给域名添加跳转/301 重定向-CSDN 博客
- Cloudflare 设置 301 重定向,附常见问题和解决方法