详解IIS中URL重写工具的匹配URL-规则模式(rule patterns)
原文作者:十有三
原文出处:http://shiyousan.com/post/635659901987610088
Rule patterns规则模式在IIS的URL重写模块中,是较为关键的设置。只有规则模式的URL匹配成功时,其他的规则才能起到作用。规则模式的匹配URL设置主要是匹配URL中的路径部分,一般使用正则表达式和通配符对URL路径进行匹配,下面会仔细的说明。
首先要了解规则模式是匹配URL中的哪一部分,假设当前有网站的URL地址为http://shiyousan.com/Home/Index?page=1,那么规则模式匹配的部分就是Home/Index,域名的主机部分和参数部分如果要匹配,则需要在规则条件(Rule conditions)那设置,并且要使用到服务器变量,具体可以查看这篇文章:详解IIS中URL重写工具的规则条件(Rule conditions)
官方相关文档:Rule Pattern
PS:这里非常重要,一定要注意匹配URL的只是路径部分,是不包含主机域名部分!
下面说明如何设置匹配URL规则的各个属性:
如上图所示,匹配方式我们可以选择与模式匹配,与模式不匹配这两种。从字面上很容易理解这两个选项的意思,主要还是根据下面的匹配语法和模式相关联。
接下来选择要使用的匹配语法,一共有三种:正则表达式,通配符,完全匹配,这里我们选择的是使用正则表达式。
最后设置匹配规则模式的语法,这里我设置的正则表达式是 ^(.*?)/Home/(Index)$ 。点击右边的测试模式,我们可以测试正则匹配的是否正确,输入URL:http://shiyousan.com/Home/Index,最终正确的显示匹配,如下图所示:
我们使用正则一共可以捕获到3组反向引用的内容,具体关于{R:0}/{R:1}/{R:2}和向后引用/反向引用,可以看这篇文章:详解IIS中的重写工具下关于操作重定向URL中的{R:N}与{C:N}。
到这里就对rule patterns进行了全部的说明,以后在IIS上使用URL重写工具就会容易的多。