Modrewrite正则表达式

时间:2010-02-10 11:18:14

标签: php regex apache url mod-rewrite

我有以下网址:http://www.domain.com/keyword/b21?f=&ca1=50&p=1

我试图使用的RewriteRule如下:

RewriteRule ^([^.]+)/b([0-9]+)?f=([^.]+)&p=([0-9]+)$ script.php?id=$2&p=$2&filters=$3

不幸的是,此规则与网址不匹配。

我认为它与?有关,因为我知道这是一个在regualr表达式中使用的字符。

任何帮助都会被大大改编。

2 个答案:

答案 0 :(得分:2)

我没有对此进行过测试,我之前没有使用这样的重写,所以它可能不完全正确。

RewriteCond %{QUERY_STRING} ^f=([^.]+)&p=([0-9]+)$
RewriteRule ^([^.]+)/b([0-9]+)$ script.php?id=$2&p=$2&filters=%1

答案 1 :(得分:1)

我强烈建议您使用完整查询字符串重定向URL,并使用parse_str()

直接在PHP脚本中处理它