本文记录下如何在 Cloudflare 上将旧域名设置 301 跳转到新域名。
今天有个旧域名不用了,改用新域名,想做个301跳转。以往都是在 WordPress中用插件配置的,也改过 .htacess 文件。但这个域名是挂在 Cloudflare 上的,还是去网上搜了下方法。不过搜到的教程有点久了,还是19年、21年的。所以记录一下。
打开 Cloudflare 规则界面
现在 Cloudflare 设置 301 跳转有 2 个方法:“Redirect Rules”(重定向规则)或传统的“Page Rules”(页面规则)。我使用的是传统方式。
- 登录 Cloudflare 仪表盘,选择旧域名。
- 点击左侧的菜单,选择规则。

Page Rules 设置 301 跳转
Page Rules 设置 301 有个限制:免费计划只能设置 3 条 Rules。
1. 在左侧导航栏中,点击“规则” > “页面规则”。

2. 点击“创建页面规则”。
- 在 URL(必需) 字段中,输入旧域名。例如 olddomain.com/*(这里的 * 号表示匹配所有路径)。
- 点击选取设置(必需),选择“转发 URL”。状态代码选择“301 - 永久重定向”。
- 输入目标 URL (必需)填写新域名:https://newdomain.com/$1。其中 $1 的意思会保留旧 URL 的路径。
- 点击“保存和部署页面规则”,等待几秒钟生效。

使用 Redirect Rules 设置 301 跳转
这个是 Cloudflare 提供的较新功能,功能更强大,有很多预设的模板可供选择。
1. 在左侧导航栏中,点击“规则” > “概述”。
2. 在模板中选择“重定向到其他域”。

3. 给规则起一个名字。(你自己分得清这是干嘛的就行)
4. 选择通配符模式。
- 请求 URL:输入你的旧域名,例如:olddomain.com*
- 目标 URL:输入你的新域名,例如:https://kerrynotes.com{$1}
- 状态码:301
5. 点击“部署”,稍等几秒。

常见问题
- Q我设置好了,但是旧域名打不开了。
- A
确保你的旧域名在 Cloudflare 的 DNS 中添加了 A 记录或 CNAME 记录,并启用了代理(橙色云图标)。
- Q我选择了重定向规则模式,设置了 $1,但是没生效。
- A
重定向规则模式下是 ${1},不是$1。我就写错了,导致重定向不成功。
总结
我自己选择了传统模式,因为当时在写${1}的时候写成$1了,就一直出问题,就放弃了。后来才发现是自己写错了。
- 页面规则免费计划只有3条,如果需要更多重定向,就要考虑升级计划或使用重定向规则。
- 重定向规则目标 URL 后是${1}。
- 确保旧域名在 Cloudflare 的 DNS 中添加了 A 记录或 CNAME 记录,并启用了代理(橙色云图标)。
- 确保旧域名启用了 HTTPS(在“SSL/TLS”设置中选择“Full”或“Flexible”模式),否则 HTTP 到 HTTPS 的重定向可能失败。
- 部署后可以使用
curl -I http://olddomain.com
测试。