没有合适的资源?快使用搜索试试~ 我知道了~
详解IIS中URL重写工具的规则条件(Rule conditions)
1星 6 下载量 68 浏览量
2020-09-30
09:40:02
上传
评论
收藏 61KB PDF 举报
温馨提示
试读
2页
本文结合官方文档和相关示例,详细记录了在IIS中URL重写工具下的规则条件(Rule conditions)的相关说明。规则条件允许我们通过额外的逻辑规则来过滤和匹配规则模式( rule pattern ),所以只有当规则模式的URL匹配成功时,Rule conditions才会起作用
资源推荐
资源详情
资源评论
详解详解IIS中中URL重写工具的规则条件重写工具的规则条件(Rule conditions)
本文结合官方文档和相关示例,详细记录了在IIS中URL重写工具下的规则条件(Rule conditions)的相关说明。规
则条件允许我们通过额外的逻辑规则来过滤和匹配规则模式( rule pattern ),所以只有当规则模式的URL匹配成
功时,Rule conditions才会起作用
本文结合官方文档和相关示例,详细记录了在IIS中URL重写工具下的规则条件(Rule conditions)的相关说明。规则条件允许我
们通过额外的逻辑规则来过滤和匹配规则模式( rule pattern ),所以只有当规则模式的URL匹配成功时,Rule conditions才会
起作用。
先附上官方文档地址:Rule conditions。下面会详细说明规则中的各种属性和设置。
逻辑分组
逻辑分组只有两个选项,任意匹配和全部匹配。规则条件是由多个条件组成的一个条件集合,所以最终判断需要根据逻辑分组
来的设置来选择计算方法。
就如同字面上的意思,如果选择任意匹配,只要在条件集合中有一个条件规则符合匹配,那么整体的规则条件就是有效的,相
当于编程中的或运算。而如果选择全部匹配,只有当条件集合中的所有规则全部匹配成功,规则条件才算是有效的规则,相当
于编程中的与运算。
匹配类型
按照文档所说,定义一个规则条件主要通过设置两个属性,即输入字符串(Input string)和匹配类型(Match type),匹配类型在
添加条件的对话框中是通过检查输字符串是否选项来设置的,总共有3种匹配类型,细分的话则是6种匹配类型:
1、是否是文件,分为是文件和不是文件这两个选项,可以用来判断所请求的URL是否为系统文件的物理路径,默认的条件输
入字符串的值(服务器变量)是{REQUEST_FILENAME}
2、是否是目录,分为是目录和不是目录这两个选项,可以用来判断所请求的URL是否为文件目录的物理路径,默认服务器变
量为{REQUEST_FILENAME}
3、是否与模式匹配,分为与模式匹配和与模式不匹配两个选项,一旦选择了这种匹配模式,那么就需要搭配正则表达式或者
通配符进行匹配。在添加条件的对话框中,通过设置模式输入框来设置相应的正则表达式或通配符以完成模式匹配。
条件输入字符串与服务器变量
条件输入字符串中的值就是服务器变量,而具体使用哪些服务器变量则与匹配类型有关,关于服务器变量可以查阅这篇资料:
IIS Server Variables
这里我们挑选最常使用的匹配类型:与模式匹配。这种模式最常使用的服务器变量类型如下:QUERY_STRING、
HTTP_HOST、SERVER_PORT、SERVER_PORT_SECURE、REQUEST_URI。
假设向下面的URL地址发送一个请求:http://shiyousan.com/Home/Index?page=1&tid=11,那么这些变量的含义如下:
QUERY_STRING 服务器变量所包含的是 page=1&tid=11这部分,表示URL的参数字符串HTTP_HOST 服务器变量所包含的
部分是shiyousan.com,表示所请求的主机域名SERVER_PORT 服务器变量所包含的部分是 80,表示服务器的端口
SERVER_PORT_SECURE 服务器变量所包含的部分是0,HTTPS请求为OFF,表示接受请求的服务器端口是否为安全端口
时,是为1,否则为0,一般来说如果是HTTPS请求则为安全端口,即为1,HTTPS为ON。REQUEST_URI 服务器变量所包
含的部分是/Home/Index?page=1&tid=11,就是除了主机域名外剩下的URL地址字符串和参数字符串。范例
根据上面条件输入的服务器变量类型描述,就能大概知道这些服务器变量如何和我们的匹配模式相结合使用,这里我们以正则
搭配HTTP_HOST来做一个范例。
假设当前网站绑定了多个域名,比如shiyousan.com,www.shiyousan.com,daodaodao.shiyousan.com,ywftest.com(意思就
是访问这些域名都是打开同一个网站)。我们要做一个301重定向,将shiyousan.com这个顶级域名下的所有子域名都重定向
到顶级域名中(这里只是举例,一般很少这样做),其他顶级域名保持不变。
如下图所示,我们添加了一个条件模式,条件输入的服务器变量为{HTTP_HOST},匹配模式的正则为^(.+)\.shiyousan\.com$。
只要在网站中输入www.shiyousan.com这样主机为shiyousan且带有多级域名前缀,都会被强制跳转到顶级域名中。
相反的由于在条件模式中没有限制ywftest.com这个域名,所以使用这个域名访问网站就会发现URL地址仍然没有变化。因为
资源评论
- szhongdian8652021-03-13没啥用,没有微博从fig文件
weixin_38743235
- 粉丝: 10
- 资源: 941
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功