IIS url rewrite - условие исходящего правила в нижнем регистре для flash-объекта / URL-адресов параметров - PullRequest
0 голосов
/ 14 марта 2011

У меня есть проект.net 4.0, и я использую правила перезаписи URL IIS 7.5, чтобы применять строчные буквы ко всем URL-адресам - как входящим, так и исходящим. У меня все работает как нужно, но в случае понижения значения тега param объекта:

    <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>

Эти URL-адреса для флэш-сервера действительно чувствительны к регистру и поэтому изменяют их функциональность с учетом регистра. Как написать целевое условие, чтобы исключить переписывание этих URL-адресов?

Мои правила исходящей перезаписи web.config следующие: я пытался добавить пользовательские теги, чтобы иметь возможность сопоставлять / объект или параметр, но безрезультатно:

 <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>

-Мой первый пост stackoverflow, пожалуйста, и спасибо!

1 Ответ

0 голосов
/ 15 марта 2011

Правило не должно содержать объект, так как вы не хотите, чтобы он соответствовал и получал нижний регистр

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...