我编写了一个重定向规则,用于将客户端的内容请求路由到标准计划中为托管的ASP.Net MVC网站提供服务的链接Azure CDN。
我尝试了几次规则的迭代;没有什么工作
这些是我实施的步骤
在网站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>
......(不使用自定义子域名等待传播)
保存,停止并重新启动网站,清除缓存,F12,检查元素.....没有,内容仍然是从网站上直接拉出来的 那么我做错了什么?
谢谢
答案 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模块。