查询字符串参数的 apache 重写规则

查询字符串参数的 apache 重写规则

下面的代码以这种形式构建一个 url。

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

这是重写条件和规则

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

或者使用参数过滤器

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

我如何获得重写条件和重写规则

答案1

您可以使用 QSA 标志(查询字符串附加)将现有查询字符串添加到请求中。由于您实际上并没有更改参数,因此您可以更简单地执行此操作:

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

相关内容