HTTP 不会重定向到 HTTPS

HTTP won't redirect to HTTPS

我在 Heroku 上有一个 PHP 网络应用程序,它使用 Cloudflare 页面规则将所有 http 请求重定向到 https。这在几乎所有情况下都能完美运行,除非我将推荐跟踪标识符附加到 url 的末尾。

Cloudflare 页面规则是:

http://mywebsite.com -> Always use HTTPS - ON

https://cdn.mywebsite.com/* -> Cache Level: Cache Everything - ON

http://mywebsite.com/subscribe -> Always use HTTPS - OFF

键入 http://mywebsite.com 会将用户重定向到 https://mywebsite.com

键入 http://mywebsite.com?yp_ref=user60 不会将用户重定向到 https

如何确保所有请求都重定向到 https?

将您的区域的所有流量强制为 https 的最简单方法是在具有恰当标记的功能 "Always use HTTPS" 的加密选项卡上执行此操作。但看起来您网站的某些部分不支持 SSL(即 sub-optimal)。然后您可以为您的订阅使用灵活 SSL 的页面规则 link。

使用当前设置,您至少需要两件事..

将 * 添加到首页规则的 ned 中。

当您这样做时,您的页面规则看起来可能是乱序的,因为 /subscribe(第三条规则)不会触发,因为它被第一条规则覆盖,因此您需要将它移到顶部的优先权。 (仍然是灵活的 SSL 或更好,但在这里修复它以获得完整的 SSL 会更好)。