Web.config重写规则中的部分小写URL的正则表达式

时间:2018-11-19 07:42:16

标签: c# asp.net regex url-rewriting web-config

对于SEO,我希望我的URL保持一致,但我不希望它影响任何查询参数。因此,例如: 这些网址:

应该全部变成:

但是这个:

应为:

有时候我有些东西可以用:

    <rule name="LowerCaseRule" stopProcessing="true">
      <match url="([A-Z]+)(.*)" ignoreCase="false" />
      <action type="Redirect" url="{ToLower:{R:1}{R:2}}" redirectType="Permanent" />
    </rule>

1 个答案:

答案 0 :(得分:1)

感谢John的有用评论,我使它像这样工作:

    <rule name="LowerCaseRule" stopProcessing="true">
      <match url="^(.*?)(\?.*|$)" ignoreCase="false" />
      <conditions logicalGrouping="MatchAny">
        <add input="{SERVER_NAME}" pattern="[A-Z]" ignoreCase="false" />
        <add input="{PATH_INFO}" pattern="[A-Z]" ignoreCase="false" />
      </conditions>
      <action type="Redirect" url="{ToLower:{R:1}}{R:2}" redirectType="Permanent" />
    </rule>