南琴浪博客

使用 Cloudflare PageRules 实现强制 HTTPS 跳转和 301 重定向

10/29/2017

本文介绍如何使用 Cloudflare PageRules 实现强制 HTTPS 跳转和 301 重定向。

在我的上一篇文章 本博客 Nginx 配置(系列三) 完整篇 中,可能有细心的朋友会发现,怎么你的站点中没有强制 HTTPS 跳转的配置呢,明明用 HTTP 访问你的域名能被跳转到 HTTPS 啊?那是因为,我压根就没有使用 Nginx 的重定向功能。

Cloudflare PageRules 是非常强大的功能,我就是利用它来达到这个目的。

强制 HTTPS 跳转

实现 强制 HTTPS 跳转 的方法很简单,只需配置成如图所示:
按照如图所示配置
配置完成后

301 重定向

因为本站不久前换了域名,从 www.nanqinlang.com 搬迁到了现在的 sometimesnaive.org ,强制 HTTPS 跳转肯定是必须的(配合 HSTS 还能提高性能)。并且同时,我也需要一个 301 重定向来让对旧域名的访问跳转到新域名。

要实现这两项功能,需要在 Cloudflare PageRules 中进行以下操作:

1.旧域名的 HTTPS 跳转
旧域名的 HTTPS 跳转

2.旧域名 301 重定向到新域名
旧域名 301 重定向到新域名

上面两步完成后,应该是这样的
上面两步完成后

3.旧域名指向一个有效的 ip
把旧域名指向随便一个有效的 ip,当然,就算能随便指定也不要随便指定,安全起见,建议就像我这样,把旧域名指向 opendns 的 ip
旧域名指向一个有效的 ip

4.新域名的 HTTPS 跳转
这一步操作和上面 301 重定向部分所讲的一样,这里不再重复。

以上完成后,就能达到以下效果:

1. 访问 http://www.nanqinlang.com(跳转到 https://www.nanqinlang.com 再)跳转到 https://sometimesnaive.org

2. 访问 https://www.nanqinlang.com  跳转到 https://sometimesnaive.org

3. 访问 http://sometimesnaive.org      跳转到 https://sometimesnaive.org