IIS URL 重写可以根据 URL 规则做些特定的事情。实际测试,有些事情要注意:
一是编辑条件时,条件输入 {URL} 不包含 {QUERY_STRING}。
比如我们试图匹配 QueryString 中的某字符,按理说 {URL} 是包含 {QueryString} 的,所以如果 {QUERY_STRING} 能匹配,那么 {URL} 也能匹配,但上图中那个“测试模式”也印证了这一说法。
但实际使用时发现 {URL} 不能匹配,{QUERY_STRING} 才能匹配。最合理的解释就是:
{URL} 不包含 {QUERY_STRING}(与我们想象的不一样)。
“测试模式”中只管输入的内容与模式是否匹配,没有去识别输入的内容中哪部分是 URL,哪部分是 QueryString。
二是注意字符可能会经 URLEncode,也可能不会。
要匹配 QueryString 中的 <,模式应该写作 *%3C*,而不是 *<*。
但是不是所有的字符都会转,比如 ^,模式应该写作 *^*,而不是 *%5E。
所以,建议干脆两种都写上。
三是默认“忽略大小写”
默认“忽略大小写”的勾是勾上的,所以我们写 *%3c* 与 *%3C* 是一样的。
四是有多个条件时,默认是全部匹配。
如果需要,可以改为任意匹配。
相关阅读