将规则Url重写为小写,Querystring除外



我有web.config文件的基本重写规则,该规则将我的url转换为小写。

完美,除了一个问题:我在电子邮件中传递区分大小写的令牌,允许用户更改他们的用户名/电子邮件

如何制定重写规则,使我的url小写,同时使查询字符串区分大小写?

示例:

<rule name="Convert to lower case" stopProcessing="true">  
  <match url=".*[A-Z].*" ignoreCase="false" />  
  <action type="Redirect" url="{ToLower:{R:0}}" redirectType="Permanent" />  
</rule>

使此Url:http://resources.championscentre.org/ConfirmChangeEmail/abcDEfGhIJKlmn

对此:http://resources.championscentre.org/confirmchangeemail/abcdefghijklmn

但需要:http://resources.championscentre.org/confirmchangeemail/abcDEfGhIJKlmn

正则表达式应该是

^[w:/.]*/

w is [a-zA-Z0-9]

^锚定了起点。

^[w:/.]*是任何阿尔法数或/:.

最后的CCD_ 7确保最后一个CCD_。(假设您的URL不以/结尾)

查看示例

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

最新更新