南琴浪博客

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

10/29/2017

在我的上一篇文章 本博客 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