下面的代码以这种形式构建一个 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