使用Cloudflare的Page Rules实现支持通配符的301跳转
使用Cloudflare的Page Rules实现支持通配符的301跳转
前言:
有些时候,比如我们网站更换域名时,我们需要使发布于各处的原始域名链接指向新的域名,以避免其变成死链。这种情况我们就需要使用301永久重定向(301 - Permanent Redirect)使原始域名链接指向新的域名。301重定向处于HTTP协议层,所以我们可能需要架设一个Web服务器来做301重定向;或者一些具有中国特色的域名解析服务商会提供一种叫做“显性URL”的功能(虽然301重定向不属于域名解析),这种情况是借助它们的服务器做了一个301跳转,但是据了解,国内域名解析服务商可能会要求域名有备案。这里有一个简单的解决方法,我们可以使用Cloudflare的Page Rules实现这个需求。
操作:
首先要把源域名的DNS解析服务转到Cloudflare下,这样就要求你的源域名注册商是支持修改源域名的解析服务提供商的。否则本文就不适用了。
打开 CloudFlare 网站:https://www.cloudflare.com 。注册账号并登录,点击 Add Websites,输入你要跳转的源域名所属的顶级域名,点击 Begin Scan,CloudFlare 会扫描你源域名当前的 DNS 记录,扫描完成后点击 Continue Setup。
在Cloudflare给出的 DNS 列表中检查是否包含源域名的所有 DNS 记录,有缺就手动补上。然后点击 Continue。选择 Free Website 项,点击 Continue。
Cloudflare 提示需要修改源域名的域名服务器,在源域名注册商处修改域名服务器到Cloudflare提示的服务器。修改后点击 Continue,等待域名服务器的修改生效,一般可能需要一定的时间。在 Cloudflare 主页上显示域名对应的状态(Status)为Active即表示已经域名服务器的变更已经生效了。
在 DNS 选项卡下查看 DNS 记录。将你要跳转的域名解析到一个有效的 IP,比如 8.8.8.8,Status处选择通过 Cloudflare 。
此处举例我要将test.lexsion.ml
重定向到test.lexsion.com/old/
我们选择 Page Rules 选项卡,点击Create Page Rule ,在 If the URL matches: 内填入源域名,需后跟通配符 /*
使所有页面均重定向,像这样:test.lexsion.ml/*
,然后点击 Add a Setting ,选择 Forwarding URL ,在 Select Status Code 中选择 301 - Permanent Redirect ,然后在下方的Enter destination URL中输入要重定向到的网址,比如我想跳转到 test.lexsion.com/old/
,并希望能使用通配符将请求的目录和文件结构带过来。那我需要输入 https://test.lexsion.com/old/$1
,然后点击 Save and Deploy ,等待一段时间让Cloudflare规则生效就完成了。
这时我们输入 http://test.lexsion.ml/XXXX.html
就会跳转到 https://test.lexsion.com/old/XXXX.html
。当然本文所写链接仅为举栗子,实际没有跳转效果。