0
我有一个.NET 4.0项目,并使用IIS 7.5 URL重写规则在所有URL上强制使用小写 - 入站和出站规则。我把一切都如所期望的功能,但用于对象param标记值的情况下被降低:IIS URL重写 - 闪存对象/参数URL的小写出站规则条件
<object width="600" height="378" id="flash_258112502" type="application/x-shockwave-flash" data="/_resources/flash/videoplayer.swf">
<param value="rtmp://media.website.org/vod/mp4:20110302councilmeeting.f4v" name="serverurl">
</object>
这些网址闪光灯服务器确实区分大小写,所以修改它们的情况下破裂的功能。如何写出一个有针对性的条件来排除这些网址被重写?
我的web.config重新编写出站规则如下,我试图添加自定义标签能够匹配/对象或PARAM但无济于事:
<outboundRules rewriteBeforeCache="true">
<!-- convert all links to lowercase -->
<rule name="Outbound lowercase" preCondition="IsHTML" enabled="true">
<match filterByTags="A, Script, CustomTags" customTags="object" pattern=".*[A-Z].*" ignoreCase="false" />
<action type="Rewrite" value="{ToLower:{R:0}}" />
<conditions logicalGrouping="MatchAny">
<add input="{URL}" pattern="/workarea/" negate="true" />
<add input="{URL}" pattern="media.website.org" negate="true" />
<add input="{URL}" pattern="^.*\.(ashx|axd|css|gif|png|js|flv|f4v)$" negate="true" />
</conditions>
</rule>
<preConditions>
<!-- Only process html files -->
<preCondition name="IsHTML" logicalGrouping="MatchAny">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
<customTags>
<tags name="param">
<tag name="param" attribute="param" />
</tags>
<tags name="object" />
</customTags>
</outboundRules>
- 我的第一个计算器后,请和谢谢!
按规定并不妨碍lowercasing删除对象标签。 '对象'最终在那里试图确保我们实际上正在处理该标签,以便能够创建一个条件来否定小写规则。我不知道什么是实际转换,因为我宣布路径“media.website.org”和扩展名“.f4v”作为规则否定者。 – damian 2011-03-15 01:15:44
我做了一个更简单的测试来验证,并按预期工作。我会把它分解成最简单的规则(例如只包含A,Script)并从那里开始。一次添加更多规则(包括否定)。 – 2011-03-15 16:14:32
没有运气。我所有的尝试 - 我尝试了每个想法和组合,我可以想象。 – damian 2011-03-15 16:56:48