从查询字符串到路径的mod_rewrite

时间:2013-07-10 09:03:16

标签: regex apache mod-rewrite

我正在尝试重写以下网址:

http://www.example.com/services/user/get.json?(name)=(username)&token=abcdef

要:

http://www.example.com/services/user/(name)/(username).json?token=abcdef

querystring变量的标签name/user/之后,然后是查询字符串变量name的值username。然后token querystring变量应保持不变。

到目前为止,我已经提出:

RewriteRule ^/services/user/get\.json\?([name])=([^&]+)&(.+)$ /services/user/$1/$2?$3

我在正则表达式上非常糟糕,而且我不确定我在这里做错了什么。如果有人可以帮助我,将非常感激。

1 个答案:

答案 0 :(得分:1)

您可以使用RewriteCond捕获您的参数,并在替换您的网址后。

所以你可以试试这个:

RewriteCond %{QUERY_STRING} ^([^=]+)=([^&]+)&(.+)$
RewriteRule ^services/user/get.json /services/user/%1/%2.json?%3 [R=301,L]