rewriter在virtualhost中的匹配规则

      前几天做一个小修改,就是对一些请求做一个跳转,于是我在 http.conf 文件中做了如下的修改(摘录其中重点部分如下),其中1部分即为新增的用于跳转的配置。

              

     后来在调试过程中,即使我的匹配规则为永真,仍然没有进行1部分的跳转。后来才发现原来是由于下面配置了一个 virtualhost 的关系。

我们知道 httpd.conf 是由三部分组成的:全局配置、服务器配置、virtualhost 配置。全局配置是指影响所有请求的配置,如日志、请求的超时时间、最大请求数,还有一些 module 等 ; 服务器配置用于定义主服务器的参数,如服务器监控端口、文档目录的权限等等。

而所谓的 virtual host 根据表面意思来并不好理解,它其实定义了处理某一类特定 url 请求的处理代码。只要这些所请求的 url 能与 virtualhost 中的 NameVirtualHost 后面的下则表达式相匹配,那么这些请求就会被这个 VirtualHost 内部的代码所处理,而不会被其他 VirtualHost处理。

但是 virtualhost的匹配有以下几个规则:

1、当你不配置 virtualhost 时,在 http.conf 中直接写 rewriter 的代码是可以起作用的

2、但是一旦定义了一个 virtualhost, 则写在virtualhost 外的代码则不会起作用

3、这些所请求的 url 会逐一的去比对各个 virtualhost 的规则,如果匹配则处理

4、如果没有一个 virtualhost的规则能够匹配,则默认使用第一个 virtualhost 来进行处理

因此如果要想rewrite起效果,要么配置一个virtualhost来处理,要么就不定义任何一个virtualhost,直接在httpd.conf中配置跳转。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值