Reference(URL重写模块配置参考),规则模式的匹配URL设置主要是匹配URL中的路径部分

  • 栏目:软件 时间:2020-04-22 00:58
<返回列表

我们在导入规则之后我们要确认一下规则是否正常,是否能匹配到我们要匹配的内容。

rule patterns规则模式在IIS的URL重写模块中,是较为关键的设置。只有规则模式的URL匹配成功时,其他的规则才能起到作用。规则模式的匹配URL设置主要是匹配URL中的路径部分,一般使用正则表达式和通配符对URL路径进行匹配,下面会仔细的说明。

URL Rewrite(URL重写工具)作为IIS下较为常用的模块组件, 提供了重写、重定向、自定义响应、中止请求等功能。但是其相关的中文资料比较缺少,官方倒是有完整和详细的英文文档,之前我在项目中遇到需要设置重写/重定向URL操作规则时,对于范例中的{R:N}和{C:N}规则就理解的十分辛苦,因此写下本文分享下经验。

我们先打开URL重写,找到一个需要测试的规则。

 

这里先附上官网的文档,其实文档链接在IIS的URL重写模块的右边菜单就有:URL Rewrite Module Configuration Reference(URL重写模块配置参考) ,也可以看这篇URL 重写模块页

图片 1

首先要了解规则模式是匹配URL中的哪一部分,假设当前有网站的URL地址为,那么规则模式匹配的部分就是Home/Index,域名的主机部分和参数部分如果要匹配,则需要在规则条件(Rule conditions)那设置,并且要使用到服务器变量,具体可以查看这篇文章:详解IIS中URL重写工具的规则条件(Rule conditions)

R和C表示的是什么意思?

我们点击测试模式:

官方相关文档:Rule Pattern

这里先看官方文档的说明:

图片 2

PS:这里非常重要,一定要注意匹配URL的只是路径部分,是不包含主机域名部分!

Back-references to condition patterns are identified by {C:N} where N is from 0 to 9. Back-references to rule patterns are identified by {R:N} where N is from 0 to 9. Note that for both types of back-references, {R:0} and {C:0}, will contain the matched string.

例如我们的网页地址是:


文档链接地址:Using back-references in rewrite rules

下面说明如何设置匹配URL规则的各个属性:

{R:N}和{C:N}主要是使用了正则表达式的back-references(中文名词:反向引用/逆向引用/后向引用/向后引用),关于正则的反向引用这里就不多加说明,可以参考这三篇文章:

那么我们测试模式输入的时候:

图片 3

反向引用.aspx)后向引用Using Back References.aspx)

archives/view-148739-1.html

如上图所示,匹配方式我们可以选择与模式匹配与模式不匹配这两种。从字面上很容易理解这两个选项的意思,主要还是根据下面的匹配语法和模式相关联。

我们只要知道R表示的是rule patterns(规则模式,就是匹配URL的模式),C表示的是condition patterns(条件模式,规则条件的属性)。{R:N}和{C:N}中的N是指正则表达式中反向引用所捕获到的组号,有0至9的组号。需要注意的是,{R:0}和{C:0}表示全部匹配。其它的比如{R:1}或者{C:1}的组号是1,所以会匹配到分组1所捕获到的内容,其他带组号的则对应其正则所匹配到的组号内容。

如果模式取的是成功的就说明规则正常

接下来选择要使用的匹配语法,一共有三种:正则表达式,通配符,完全匹配,这里我们选择的是使用正则表达式。

关于规则模式和规则条件,可以参考这两篇文章

图片 4

最后设置匹配规则模式的语法,这里我设置的正则表达式是 ^(.*?)/Home/(Index)$ 。点击右边的测试模式,我们可以测试正则匹配的是否正确,输入URL:

详解IIS中URL重写工具的规则条件(Rule conditions)

{R:0}和{R:1}分别是对重写URL进行赋值。

图片 5

详解IIS中URL重写工具的匹配URL-规则模式(rule patterns)

图片 6

我们使用正则一共可以捕获到3组反向引用的内容,具体关于{R:0}/{R:1}/{R:2}和向后引用/反向引用,可以看这篇文章:详解IIS中的重写工具下关于操作重定向URL中的{R:N}与{C:N}。

示例详解说明{R:N}和{C:N}

这样伪静态的参数就能丢到ARCID了!

到这里就对rule patterns进行了全部的说明,以后在IIS上使用URL重写工具就会容易的多。

假设我们要将地址

文章由爱资料原创本文地址:

1、匹配URL(rule patterns):

图片 7

上图中我们设置模式的正则表达式为^(.*?)/?Home(/TesturlRewrite)$,我们点击打开测试模式,输入要测试匹配的URL地址:

图片 8

由上图可知,我们成功匹配了测试的URL,根据匹配模式的正则,我们一共可以捕获到3组内容,其中{R:0}上面有说过表示的是全部的内容,{R:1}捕获到的是

2、规则条件(Rule conditions):

图片 9

这里我们添加了一个条件过滤,只匹配192.168.1.100:8080这个HTTP_HOST主机。在测试的时候只捕获到一个反向引用组,即{C:0}:

图片 10

3、操作规则(Rule Action):

最后设置操作规则,设置重定向URL为:{R:2}/Index,上面我们已经知道{R:2}就是反向引用所捕获的/TestUrlRewrite,完整重定向的URL地址为:/TestUrlRewrite/Index。这样就成功实现了使用反向引用来进行重定向操作。

图片 11

上一篇:会自动下载phpstudy.bin文件,那是我们下载的版本不对 下一篇:没有了

更多阅读

Reference(URL重写模块配置参考),规则模

软件 2020-04-22
我们在导入规则之后我们要确认一下规则是否正常,是否能匹配到我们要匹配的内容。 rulepa...
查看全文

会自动下载phpstudy.bin文件,那是我们下载

软件 2020-04-20
php版本太低又会有很多语法问,太高例如php7又会有很多新语法,这时候想用个折中的php5.6时发...
查看全文

IIS导入证书需要转化为pkcs12格式(X509格式

软件 2020-04-20
首先我们打卡iis7在主页面: 创建自己的证书颁发机构(CA) 好消息,好消息,特大好消息! XX...
查看全文

友情链接: 网站地图

Copyright © 2015-2019 http://www.koi-bumi.com. 韦德体育有限公司 版权所有