我有一个Azure网站托管用于Windows Phone应用程序中用于Live Tiles的一组图像
Live Tile图像请求对URL中的比例(和其他)数据进行编码,如下所示(我认为,对此文档的缺乏非常严重)
http://example.com/Images/sunny.png?ms-scale=100&ms-contrast=standard&ms-lang=en-us
我想改写成
http://example.com/Images/sunny.scale-100.png
.scale-xxx值与查询字符串中的值匹配的地方
最佳答案
经过大量搜索后,我发现了
<system.webServer>
<rewrite>
<rules>
<rule name="SpecificRewrite" stopProcessing="true">
<conditions>
<add input="{QUERY_STRING}" pattern=".*ms-scale=(\d+).*" />
</conditions>
<match url="^Images/(.*).png.*" />
<action type="Rewrite" url="/Images/{R:1}.scale-{C:1}.png" />
</rule>
</rules>
</rewrite>
</system.webServer>
这会将查询字符串添加到匹配项中(组引用为C:1)
<add input="{QUERY_STRING}" pattern=".*ms-scale=(\d+).*" />
这是实际的匹配(组称为R:1)
<match url="^Images/(.*).png.*" />
这是重写规则
<action type="Rewrite" url="/Images/{R:1}.scale-{C:1}.png" />
有用的参考
URL Rewrite Module Configuration Reference
Debug and troubleshoot rewrite rules easily
您可以在Azure网站管理门户的“配置”部分中打开“失败的请求跟踪”,文件以
/LogFiles/<SiteName>/
结尾关于c# - 如何使用查询字符串中的数据重写Azure图像URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24872423/