Featured Posts

CentOS LAMP Setup 很土鳖的问题,浪费我几个小时,终于搞定! 在 CentOS 下使用 xampp 的集成套件搭建 LAMP 环境,启动 Apache 后,用浏览器访问 web 程序,居然提示下载源文件!! 也就是...

Readmore

看看我写的 GFW 小故事 我是一个乖孩子,喜欢上网跟朋友们聊天、玩游戏 警察叔叔说,网上很黄很暴力,我却很傻很天真,不让我再看到我最爱的网站 直到有一天,一个无辜的小鸟被无情地封杀,我才意识到问题的严重性 面对河蟹坚硬的钳子,小鸟不能改变什么,唯一能做的,就是送上几句脱口秀解解气 据说那个墙,又黑又高,看到朋友们发来的结构图,我哭了 我再也看不见可爱的...

Readmore

Apache ReWrite QUERY_STRING 问号 ? 看一条应用中简单的 rewrite 规则: 将请求: http://www.leakon.com/soft/install?ver=2.0 rewrite 为: http://www. leakon.com/my/soft/install.php 配置文件 httpd.conf...

Readmore

  • Prev
  • Next

Apache ReWrite QUERY_STRING 问号 ?

Posted on : 28-03-2009 | By : leakon | In : Web开发

1

看一条应用中简单的 rewrite 规则:
将请求:
http://www.leakon.com/soft/install?ver=2.0
rewrite 为:
http://www. leakon.com/my/soft/install.php

配置文件 httpd.conf 加上如下配置:

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

请注意配置中的两个问号。

请求时,从 QUERY_STRING 取得 url 的查询字符串,这里只获取了 ver 的值,而且限定是带浮点的数字,ver 之后的查询字符都被忽略。实际上是用到 ? 来终结。

官方文档解释为:
注意:查询字符串
Pattern 不会按照查询字符串进行匹配。为了达到这个目的,你必须使用一个带有 %{QUERY_STRING} 变量的 RewriteCond 指令。

当 然,你也可以在替换字符串中创建包含查询字符串的 url:在替换字符串中使用问号,以标明其后的部分应该被重新注入到QUERY_STRING中。

而要删除一个已有的请求串,则可以用问号来终结替换字符串。为了联合新旧查询字符串,请使用[QSA]标志。

Comments (1)

顶一个,网上找了N久,全是copy...没一个自己分析的,终于在这找到解决方案了

Write a comment