查询string参数的apache rewriterule

下面的代码以这种forms构build一个url。

http://mysite.com/browse/department/?pid=1 

这里是重写cond和规则

 RewriteCond %{QUERY_STRING} ^pid=([0-9]+) RewriteRule browse/(.*)/$ show_products.php?department=$1&pid=%1 

我想要的是有2个额外的参数,第一个是购买订单,第二个不一定在过滤url,所以url会是这样的

 http://mysite.com/browse/department/?pid=1&order_by=a_z 

或使用参数filter

 http://mysite.com/browse/department/?pid=1&order_by=a_z&filter=1 

我如何有我的重写条件和我的重写规则

您可以使用QSA标志(查询string追加)将现有的查询string添加到您的请求中。 因为在你的情况下,你实际上并没有改变参数,你可以做的更简单:

 RewriteRule browse/(.*)/$ show_products.php?department=$1 [QSA] 

这将重写

 http://mysite.com/browse/department/?pid=1&order_by=a_z 

 /show_products.php?department=department&pid=1&order_by=a_z 

和:

 http://mysite.com/browse/department/?pid=1&order_by=a_z&filter=1 

 /show_products.php?department=department&pid=1&order_by=a_z&filter=1