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

Regex in Web.config Rewrite Rules for partial lowercase URL

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

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