2011-03-14 48 views
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> 

- 我的第一个计算器后,请和谢谢!

回答

0

规则不应该包含对象,你不希望它匹配并获得小写

<match filterByTags="A, Script" pattern=".*[A-Z].*" ignoreCase="false" /> 

开始与这个

<outboundRules> 
     <rule name="Outbound LowerCase Rule"> 
      <match filterByTags="A" pattern=".*[A-Z].*" /> 
      <action type="Rewrite" value="{ToLower:{R:0}}" /> 
     </rule> 
    </outboundRules> 
+0

按规定并不妨碍lowercasing删除对象标签。 '对象'最终在那里试图确保我们实际上正在处理该标签,以便能够创建一个条件来否定小写规则。我不知道什么是实际转换,因为我宣布路径“media.website.org”和扩展名“.f4v”作为规则否定者。 – damian 2011-03-15 01:15:44

+0

我做了一个更简单的测试来验证,并按预期工作。我会把它分解成最简单的规则(例如只包含A,Script)并从那里开始。一次添加更多规则(包括否定)。 – 2011-03-15 16:14:32

+0

没有运气。我所有的尝试 - 我尝试了每个想法和组合,我可以想象。 – damian 2011-03-15 16:56:48