2010-02-10 26 views
0

我有以下网址:http://www.domain.com/keyword/b21?f=&ca1=50&p=1Modrewrite正则表达式

而且RewriteRule我试图使用方法如下:

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

不幸的是这条规则不匹配的URL。

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

任何帮助将大大apprecriated。

回答

2

我没有测试过这个,在我之前我没有用过这样的重写,所以它可能不完全正确。

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

很抱歉,这没有工作:( – Lizard 2010-02-10 11:23:42

+0

我看过的文档给你,并进行处理编辑我的答案,有希望的作品(或几乎成功)。 – 2010-02-10 11:31:58

+0

这很棒!你是明星! – Lizard 2010-02-10 11:43:39

1

我强烈建议你使用重定向的完整查询字符串的URL,直接在PHP脚本parse_str()