2

我在 IIS 7 中使用此规则

<rule name="Convert to lower case" enabled="true" stopProcessing="true">
  <match url=".*[A-Z].*" ignoreCase="false" />
  <conditions>
    <add input="{URL}" pattern="(.*)/admin/*" negate="true" />
  </conditions>
  <action type="Redirect" url="{ToLower:{R:0}}" redirectType="Permanent" />
</rule>

如何修改它,使其仅重定向用户可能在浏览器中看到的 URL,例如 /MyPage.aspx 和 /MyPage 以及 /MyPage.htmL

编辑:我最终使用了这个:(这解决了 DotNetNuke 的问题并减少了不必要的重定向)

    <rule name="Convert to lower case" enabled="true" stopProcessing="true">
      <match url=".*[A-Z].*" ignoreCase="false" />
      <conditions>
        <add input="{URL}" pattern="(.*)/(admin|desktopmodules|host|tabid)/*" negate="true" />
        <add input="{URL}" pattern="^.*\.(xml|ashx|axd|css|js|jpg|jpeg|png|gif)$" negate="true" ignoreCase="true" />
      </conditions>
      <action type="Redirect" url="{ToLower:{R:0}}" redirectType="Permanent" />
    </rule>
4

1 回答 1

1

对于 Extensionless 和 ASPX 仅小写:

<rule name="LowerCaseRule" stopProcessing="true">
  <match url="[A-Z]" ignoreCase="false" />
  <action type="Redirect" url="{ToLower:{URL}}" />
  <conditions logicalGrouping="MatchAny">
    <add input="{REQUEST_FILENAME}" pattern="\.aspx$" />
    <add input="{REQUEST_FILENAME}" pattern="\." negate="true" />
  </conditions>
</rule>

\.aspx$.aspx匹配以($是行尾) 结尾的文件名

\.匹配文件名中带点的任何内容(尚未匹配)并从匹配中否定它

于 2013-11-04T22:48:46.767 回答