Regex в Web.config Правила перезаписи для частичного строчного URL - PullRequest
0 голосов
/ 19 ноября 2018

Для SEO я хочу, чтобы мои URL были согласованными, но я не хочу, чтобы это влияло на параметры запроса. Так, например: Эти 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 голосов
/ 19 ноября 2018

Благодаря полезным комментариям 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>
...