出站URL重定向规则用于提供Azure CDN无法正常工作的内容请求

时间:2014-10-02 07:49:02

标签: asp.net redirect azure

我编写了一个重定向规则,用于将客户端的内容请求路由到标准计划中为托管的ASP.Net MVC网站提供服务的链接Azure CDN。

我尝试了几次规则的迭代;没有什么工作

这些是我实施的步骤

  1. 创建存储
  2. 创建CDN ENDPOINT http:// azxxxxxx.vo.msecnd.net /
  3. 在GoDaddy验证并创建了一个子域名,并指向azxxxxxx.vo.msecnd.net /
  4. 使用Cloudberry Explorer创建公共容器
  5. 上传的图片blob到容器和
  6. 在浏览器上成功测试内容可用性:http:// azxxxxxx.vo.msecnd.net/images/test.jpeg
  7. 在https:// storage.blob.core.windows.net/images/test.jpeg
  8. 浏览器上成功测试了内容可用性
  9. 在网站web.config文件中插入了重写 - 重定向规则

      <rewrite>
           <rules>
                <rule name="CDN Redirection" stopProcessing="true">
                 <match url="^images/(.*)" />
                   <action type="Redirect" url="http:// azxxxxxx.vo.msecnd.net/images/{R:1}" />
                 </rule>
            </rules>
       </rewrite>
    

    ......(不使用自定义子域名等待传播)

  10. 保存,停止并重新启动网站,清除缓存,F12,检查元素.....没有,内容仍然是从网站上直接拉出来的 那么我做错了什么?

  11. http://www.ehubcap.net

    上查看我的网站

    谢谢

1 个答案:

答案 0 :(得分:1)

这是一个经过测试并适用于Azure网站的简单规则:

  <rule name="images redirection" stopProcessing="false">
    <match url="images/(.*)" ignoreCase="true" />
    <action type="Redirect" url="https://double.blob.core.windows.net/images/{R:1}" redirectType="Permanent" appendQueryString="true" logRewrittenUrl="true" />
  </rule>

注意,您的匹配模式中不需要^。 您可以检查结果here - 首先检查原始页面源 - IMG元素是指本地图像:http://double.azurewebsites.net/images/some.jpg,由URL重写到blob存储重定向(您可以重定向到任何你希望的域名。

但请注意,URL Rewrite模块依赖于其他模块。为获得最佳结果,UrlRewrite模块应该是处理结果的第一个模块。如果已启用静态和/或动态压缩来压缩输出,则URL重写将不起作用。这是因为默认配置首先启动压缩模块,然后启用URL Rewrite模块。并且URL Rewrite模块无法读取压缩内容。是的,不要问我为什么。因此,首先禁用压缩(如果已启用它)以检查URL重写配置。然后尝试重新排序模块。最简单的方法是首先删除它们,然后添加URL Rewrite,然后添加Compression模块。