一则关于Apache中的Rewrite

今天打算研究一下Apache下的Rewrite模块,没想到。。。

 

这是我的.htaccess文件内容

   

 

这是我magicurl.php下面的内容:

 

只是简单的输出所有的querystring。

 

按照我的理解,此时如果我访问http://127.0.0.1/test,应该可以看到path被设置为test,然而实际上却是magicurl.php,这是什么原因呢?

 

推测Rewrite在每次规则匹配之后,如果产生了新的url,那么新的url会重新匹配一遍所有的ruleset,也就是这样一个过程:

 

test => magicurl.php?path=test

magicurl.php => magicurl.php?path=magicurl.php

 

为了证实这个猜测,我修改了一下.htaccess的内容:

 

 

让每次匹配,都在cookie中记录一下script_filename。

 

结果,果然如我所想的一般,执行一次之后,cookie中多了test=1和magicurl.php=1这2项,匹配被执行了2次。

 

通过加上一个判断呢?

 

 

行了,就剩下test=1了,这样应该就解决了这个问题了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值