apache rewrite 规则之风骚小问号
实际中写一条简单的重写规则: 源地址: http://www.example.com/soft/install?v...
扫描右侧二维码阅读全文
27
2009/03

apache rewrite 规则之风骚小问号

实际中写一条简单的重写规则:
源地址:
http://www.example.com/soft/install?ver=1.1
重写地址为:
http://www.example.com/my/soft/report.php

配置文件httpd.conf修改如下:

RewriteCond %{QUERY_STRING} ^ver\=([0-9]+\.[0-9]+)?$ [NC] RewriteRule ^/soft/install$ http://www.example.com/my/soft/report.php?[L]

注意配置中的两个问号的应用,其中QUERY_STRING取得url问号后的查询字符串,这里实际重写应用是需要去掉后面的查询字符,所以需要用到?来终结!

官方文档解释为:
注意:查询字符串
Pattern不会按照查询字符串进行匹配。为了达到这个目的,你必须使用一个带有%{QUERY_STRING}变量的RewriteCond指令。当然,你也可以在替换字符串中创建包含查询字符串的URL:在替换字符串串中使用问号,以标明其后的部分应该被重新注入到QUERY_STRING中。而要删除一个已有的请求串,则可以用问号来终结替换字符串。为了联合新旧查询字符串,请使用[QSA]标志。

Last modification:November 26th, 2018 at 04:16 pm
If you think my article is useful to you, please feel free to appreciate

2 comments

  1. Marco

    RewriteCond %{QUERY_STRING} ^ver\=([0-9]+\.[0-9]+)?$ [NC]

    这句中最后的?应该是不需要的吧。

  2. Tibet Tour

    学习了正在研究php

Leave a Comment