使用IIS URL重写模块指向Azure CDN

eat*_*ode 3 iis azure url-rewrite-module azure-cdn

我在我的Web服务器上安装了Url Rewrite Module,该服务器运行Windows Server 2012 R2,网址如下:http://staging.mysite.net/

我将图像,字体,脚本等加载到Azure CDN中.

我在Web.config中指定了以下规则:

<rewrite>
    <rules>
        <rule name="CDN: fonts" stopProcessing="true">
            <match url="^fonts/(.*)" />
            <action type="Rewrite" url="http://cdn.staging.mysite.net/fonts/{R:1}" appendQueryString="true" />
        </rule>
        <rule name="CDN: images" stopProcessing="true">
            <match url="^images/(.*)" />
            <action type="Rewrite" url="http://cdn.staging.mysite.net/images/{R:1}" appendQueryString="true" />
        </rule>
        <rule name="CDN: pdf" stopProcessing="true">
            <match url="^pdf/(.*)" />
            <action type="Rewrite" url="http://cdn.staging.mysite.net/pdf/{R:1}" appendQueryString="true" />
        </rule>
        <rule name="CDN: scripts" stopProcessing="true">
            <match url="^scripts/(.*)" />
            <action type="Rewrite" url="http://cdn.staging.mysite.net/scripts/{R:1}" appendQueryString="true" />
        </rule>
        <rule name="CDN: style" stopProcessing="true">
            <match url="^style/(.*)" />
            <action type="Rewrite" url="http://cdn.staging.mysite.net/style/{R:1}" appendQueryString="true" />
        </rule>
    </rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)

即使存在文件,一切都将作为404错误返回.例如,我的页面引用了/images/en-us/logo.png.我确认http://cdn.staging.mysite.net/images/en-us/logo.png确实存在.

此外,Url Rewrite管理单元的"测试模式"功能显示当您输入images/en-us/logo.png/ images/en-us /时,{R1}会返回en-us/logo.png logo.png进入"输入要测试的数据"字段.

我暂时尝试使用type ="Redirect"而不是type ="Rewrite",但这会导致服务器发出重复的请求/响应.第一个是301,第二个是200.我只想要200响应.

++显然,mysite.net并不是我的域名,仅用于示例目的.

Tom*_*all 5

我正在使用以下规则来重写我的/assets文件夹下所有内容的所有请求:

<rewrite>
  <rules>
    <rule name="Rewrite to CDN">
      <match url="^assets/(.+)$" />
      <action type="Rewrite" url="http://cdn.domain.com/{R:0}" />
    </rule>
   </rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)