使用.htacess删除具有多个参数的查询字符串

时间:2018-09-27 20:49:26

标签: .htaccess mod-rewrite

我有许多URL,这些URL包含与产品数据,排序和过滤相关的查询字符串(以便它们在查询字符串中具有多个参数),我需要重写或重定向到静态URL。

例如,https://example.com/afteraloss/cremation-merchandise/product-category/cremation-urns/metal/page/2/?product_count=24&product_sort=desc&product_order=date必须为https://example.com/afteraloss/cremation-merchandise/cremation-urns/metal,实际上是删除“ / page”之后的所有内容,

我在htaccess中添加了一些重写规则,并认为它们已经在起作用,但是它们似乎并没有按要求进行重定向。

我的htaccess文件中包含以下内容:

RewriteCond %{QUERY_STRING} (^|&)product_count=([0-9]*)$
RewriteCond %{QUERY_STRING} (^|&)product_order=date($|&)
RewriteCond %{QUERY_STRING} (^|&)product_order=title($|&)
RewriteCond %{QUERY_STRING} (^|&)product_order=price($|&)
RewriteCond %{QUERY_STRING} (^|&)product_order=popularity($|&)
RewriteCond %{QUERY_STRING} (^|&)product_sort=desc($|&)
RewriteCond %{QUERY_STRING} (^|&)product_sort=asc($|&)
RewriteRule ^afteraloss\/cremation\-merchandise\/product\- 
category\/cremation\-urns\/metal\/(.*)/$ /afteraloss/cremation- 
merchandise/cremation-urns/metal/? [L,R=301]

有什么建议可以解决这个问题?我猜这是我如何组合查询字符串(因为并非所有URL都具有所有参数)或如何指定重写规则。

0 个答案:

没有答案