【问题标题】:Rewrite Access Control Allow Origin for Azure CDN Request with URL Rewrite Module使用 URL 重写模块重写访问控制允许 Azure CDN 请求的来源
【发布时间】:2019-06-06 22:56:07
【问题描述】:

我有一种情况,example.com 有多个使用相同 CSS 文件的子域,而这些子域又使用嵌入其中的相同字体文件。 webfont 在下面的“新方式”中不断收到跨域 cors 错误。如果在第二次尝试时从 CDN 请求的原始请求中找到 *,则“旧方式”工作正常,因为 CDN 设置了 Origin。

我不想这样做,因为它允许任何人使用这些文件。我想要做的只是写 * 如果我的 CDN 请求包含标题 X-MS-CacheID,但它似乎没有工作。它会导致 COR 问题,例如没有被击中。

如果我的格式正确,有什么线索吗?

老路

<outboundRules>
        <rule name="Set Access-Control-Allow-Origin header">
          <match serverVariable="RESPONSE_Access-Control-Allow-Origin" pattern="(.*)" />
          <action type="Rewrite" value="*" />
        </rule>
      </outboundRules>

新方式

 <outboundRules>
  <rule name="Set Access-Control-Allow-Origin header">
      <match serverVariable="RESPONSE_Access-Control-Allow-Origin" pattern="(.*)" />
      <action type="Rewrite" value="*" />
                <conditions>
                    <add input="HTTP_x_ms_cacheid" pattern=".*" />
                </conditions>
    </rule>
  </outboundRules>

记录的请求

GET https://example.com/home/test?r=777
Connection: Keep-Alive
Accept-Encoding: gzip, br
Cookie: _hp2_id.2757902115=%7B%22userId%22%3Anull%2C%22pageviewId%22%3A%225689423556149444%22%2C%22sessionId%22%3A%221868667023650329%22%2C%22identity%22%3A%2210afdd1785cda40fd3369b7ac259331261f1183c%22%2C%22trackerVersion%22%3A%223.0%22%7D; _ga=GA1.2.937945742.1498499252; __zlcmid=hDgYBKLfkviazc; ajs_anonymous_id=%229aa463a1-0b5b-4813-8743-63927a622489%22; ajs_user_id=%2216754861248%22; ajs_group_id=1336088; rxVisitor=15214949470675C4GAOAP6N7F4G5KA91BTI1MPDG4LLKS; __qca=P0-1799053232-1532395382422; __zlcprivacy=1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
upgrade-insecure-requests: 1
X-MS-Ref: 0eEk5XAAAAAAZD5NP0YhTRbA/Fq601jLiQVRBRURHRTEyMTEAOWY2OTZmMDMtODg4My00MzYxLWIwODQtNDc3YzIzYjA3Mjcy, 0eEk5XAAAAACPv5BjdqqhSJV3bz5bv3RMQkwyRURHRTAzMTkAOWY2OTZmMDMtODg4My00MzYxLWIwODQtNDc3YzIzYjA3Mjcy
X-MS-CacheID: 591DC589-C82D-4290-BB1C-0323968866CC, 6696BBA5-FA1D-4A4B-B73C-C55E067D588F

【问题讨论】:

    标签: regex iis cdn url-rewrite-module azure-cdn


    【解决方案1】:

    我猜我对 CSS 和字体文件的请求没有 X-MS-CacheID,但有 X-MS-Ref 之一。

    <rule name="Set CDN Access-Control-Allow-Origin header" stopProcessing="true">
              <match serverVariable="RESPONSE_Access-Control-Allow-Origin" pattern="(.*)" />
              <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                <add input="HTTP_x_ms_ref" pattern=".*" />
              </conditions>
              <action type="Rewrite" value="*" />
            </rule>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      相关资源
      最近更新 更多