Cloudflare SSL 灵活模式导致无限301/302 跳转

假设你出于某些原因需要同时做以下

  • 源站强制使用HTTPS
  • 某个子域名需要作为允许HTTP的API

那么Cloudflare的SSL灵活设置就不是这么灵活了,因为会导致强制HTTPS的页面无限301/302。此事在官方文档中亦有记载

幸好,CF大善人还是留了一条活路:页面规则可以设置某个页面下的特殊规则。这样就让API页面单走灵活,剩下的页面保持严格。

不成功的方法

尝试过在Nginx配置中加一个简单的检测,但主页的301消失了,所有子页面都变成302了😭

    # 当请求头中不存在CF-Connecting-IP时(非Cloudflare流量),进行HTTPS重定向
    if ($http_cf_connecting_ip = "") {
        return 301 https://$host$request_uri;
    }

留下评论