【问题标题】:Is there a way to to solve several CloudFlare 'Page Rules' using only the 3x available?有没有办法只使用 3x 来解决几个 CloudFlare 的“页面规则”?
【发布时间】:2016-07-03 23:54:49
【问题描述】:

我有一个网站,例如 example.com 并要求 CloudFlare 将 所有 流量从 http 重定向到 https 以获取通配符子域的 负载 (公司 www); AND 顶点(即 @ 或 /),但 NOT 用于一组子域,这些子域实际上是不接受 https 的 3rd 方服务的 CNAME,例如

http://mail.example.com

http://calendar.example.com

http://drive.example.com

http://xyz.example.com

NB 重定向到 https 协议是不可行的,因为它不受这些 3rd 方服务的支持。

对此,this question 解决了我的一半问题。相关答案贴在下面:

根据Source A;

页面规则按照它们列出的顺序应用。 所以,你所要做的就是先放绕过缓存,然后放缓存>everything规则:

nope.example.com/(绕过)

example.com/(缓存一切)

但每个 TLD 域的页面规则不能超过 3 条,因此无法将我的 http only 子域列为单独的页面规则。

是否可以创建具有逻辑 OR 的 CloudFlare 页面规则来针对特定子域白名单的流量?

我的想法是,也许我可以在一个字符串中表达多个规则,方法是使用正则表达式从一个页面规则中定位每个仅 http 子域。

例如作为无效语法的伪代码

http://mail||calendar||drive||xyz.example.com

如何创建一个有效的 RegEx 来实现这一点?

谢谢

【问题讨论】:

    标签: regex http https cloudflare subdomain


    【解决方案1】:

    其实我的问题的答案是:

    • CloudFlare 页面规则不支持 RegEx
    • CloudFlare 页面规则的数量限制因定价层而异

    我现在发现了; CloudFlare 页面规则不支持 RegEx、Glob 或任何类型的否定。您只能使用基本通配符 * 或 $1 来传递参数。

    看来,如果您有与我相同的用例,您只需掏出足够的钱来获得更多页面规则并明确列出您需要规则的所有域。

    现行规则定价; 20 美元 20 美元,50 美元 200 美元,NX 美元 X - https://www.cloudflare.com/plans

    【讨论】:

    • 还有一个由 CloudFlare 发送的 HTTP 标头 (PHP :: $_SERVER[HTTP_CF_VISITOR] => {"scheme":"https"} ) - 您可以根据此标头将用户重定向到 https: // 链接...它不是超级干净,可能很难在您的代码中实现,但它可以工作。
    【解决方案2】:

    看来,如果您有与我相同的用例,您只需掏出足够的钱来获得更多页面规则并明确列出您需要规则的所有域。当前规则定价; 20 美元为 20 倍,200 美元为 50 倍,X 美元为 NX...

    页面规则现在可供purchase a la carte 使用,在计划升级之外。

    【讨论】:

      【解决方案3】:

      您也可以只使用 CloudFlare 作为 DNS,并绕过某些子域的所有不错的元素。

      我为我的 API.domain.com 执行此操作,例如我想要来自 Lets Encrypt 的我自己的 Origin 证书

      但我希望我的所有其他子域都使用 Cloud Flare 提供的边缘证书来使用 HTTP。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-08
        • 1970-01-01
        相关资源
        最近更新 更多