首页 文章

ASP.Net网站上的CloudFlare灵活SSL重定向循环

提问于
浏览
1

由于我们在与Cloudflare的有用支持团队沟通后解决了这个问题,因此我更多地将其作为 Headers 问题的答案发布 . 从做我们的研究以来,我们找不到解决方案,这可能对其他人有帮助!

当启用Cloudflare的灵活SSL并且您希望使用How to force HTTPS using a web.config file中描述的方法将 http 重定向到 https 时,您很可能最终会进入重定向循环 .

您可以选择通过CloudFlare的页面规则使用页面规则,如https://support.cloudflare.com/hc/en-us/articles/200170536-How-do-I-redirect-all-visitors-to-HTTPS-SSL-中所述,但在我们的情况下仍然会在网站中留下一些非https请求,这些请求会使网站变得不安全 .

1 回答

  • 3

    在同一个Cloudflare支持文章_1875339中可以看到,Cloudflare附加了CF-Visitor HTTP标头,如下所述:

    CF-Visitor: {"scheme":"https"}
    

    出于这个原因,为我们工作的相应web.config <rewrite> 片段如下:

    <rewrite>
      <rules>
        <rule name="Redirect to https" stopProcessing="true">
          <match url="(.*)" />
            <conditions>
              <add input="{HTTP_CF_VISITOR}" pattern="(.*)https(.*)" ignoreCase="true" negate="true"  />
            </conditions>
           <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
    

相关问题