通过Cloudflare设置301重定向

买了个短域名,抽点时间给自己的博客换上,原来的域名太长了。

由于我的博客是使用 Github Pages 搭建的,所以无法使用 Nginx 等 Web 服务器动态重定向的方式。同时由于 Github 不允许有两个域名同时指向它(同时指向的话另一个就会 404),同样无法通过将两个链接都指向同一个地址的方式来进行。

附:这里提供一个笨方法,将新域名通过 CNAME 的方式指向老域名即可实现,但是不推荐这种方法。这种方法会有两层 DNS 解析,会增加解析时间,同时还要保证老域名是可用的,所以我们又要多续费一个域名。在时间和金钱上都不允许。

所以我选择使用 301 永久重定向的方式来处理这个问题。这种方式对搜索引擎来说更友好,谷歌在爬取网页时发现 301 重定向, 就会自动去索引新域名的文章, 并且逐渐降低原始链接的权重。

关于 301 重定向,简单解释下和 CNAME 解析的区别。虽然最后的结果都是一样的,但是 CNAME 是 DNS 方面的概念,301 重定向是 HTTP 协议方面的概念,两者是有一点小小的不同的。

使用 301 重定向的方式会发送两个 HTTP 请求,第一个 HTTP 请求会返回 301 HTTP 代码,浏览器会自动转向新的网站。使用 CNAME 的方式会发送两个 DNS 请求,第一个 DNS 请求会返回一个新的域名,然后在发送第二个 DNS 请求,来解析新域名的 IP 地址。底层大概就是这么个流程。反映在浏览器上我们所看到的就是浏览器网址栏的网址在使用 301 重定向的方式会发生变化,使用 DNS 的方式不会发生变化,使用者不会察觉到域名发生了更改,用在其他地方还是很好用的。

关于 Cloud flare,这个很出名了,就不多介绍了。

使用 Cloud flare 的第一步是将 DNS 解析服务器改成 Cloud flare 的地址。进入 Cloud­ flare 网站:https://www.cloudflare.com/ 。注册登录就不说了,点击 Add Web­sites,输入需要进行重定向的顶级域名,然后会扫描你域名的 DNS 记录,扫描完成后下一步。检查 DNS 记录是否缺失,缺失的自己加上就好。然后继续,选择免费套餐,土豪随意。进入到 DNS 解析服务器地址更改的界面。这里需要去你的域名服务商去更改域名的 DNS 解析服务器的地址,更改为 Cloud flare 的地址,这样的话 Cloud flare 才能控制你的 DNS 请求。改完之后域名就添加好了。

之后就是重头戏,进入到 Cloud flare 域名控制面板的 DNS 界面,将需要进行重定向的域名添加一个随便 IP 地址的解析,推荐谷歌的 IP,这点比较重要。因为如果域名没有解析的话,浏览器在进行 DNS 解析的时候就会直接返回找不到 IP 地址的错误,添加上了 DNS 解析,浏览器在发送 DNS 解析请求到 Cloud flare 的时候,Cloud flare 就会拦截解析请求并依照之前设置好的规则返回对应的 301 跳转请求了。(以上规则为自己猜测,不一定准确)

设置好了 DNS 解析之后就是最重要的一步,添加页面规则(Page Rules)。跳转到页面规则界面,Cloud flare 免费套餐可以设置最多三条规则。举个例子,如果我要把 blog.xxx.com/xxxx 这个网站的 HTTP 请求和 HTTPS 请求全部重定向到 blog.sss.com/xxxx,那么就应该这样设置

图中的 *$1 是通配符,负责处理 URL 的。然后点击保存就可以了。

这里要注意,如果有多条规则的话,需要注意规则的顺序,Cloud flare 在访问规则的时候只会命中第一条匹配的规则,不会进行后续匹配了。

参考链接:

https://support.cloudflare.com/hc/articles/218411427

本文章首发于个人博客 LLLibra146’s blog
本文作者:LLLibra146
版权声明:本博客所有文章除特别声明外,均采用 © BY-NC-ND 许可协议。非商用转载请注明出处!严禁商业转载!
本文链接https://blog.d77.xyz/archives/f036ccea.html