如何使用htaccess从url中删除不必要的查询字符串参数?

时间:2018-06-07 05:29:35

标签: apache .htaccess url mod-rewrite url-redirection

我有以下网址。

www.abc.com/xyz/?a=1&b=2&c=3&d=4&e=12&f=45

我想将其重定向到以下网址(通过htaccess)

www.abc.com/xyz/?a=1&b=2&c=3&d=4

如何实现上述重定向?

注意:有效的queryString参数为 a, b, c & d ,除此之外,还删除新网址(重定向网址)中的所有其他参数,这是可能的这些参数可以按任何顺序排列,即a=1&b=2&c=3&d=4d=4&b=2&c=3&a=1是可能的。并不是必须一直这些参数,有时它们中的一些不在URL中(意味着它可能只有两个有效参数来自URL或三个或一个)。

一种方法是

RewriteCond %{QUERY_STRING} (a=[\d]+)(b=[\d]+)(c=[\d]+)(d=[\d]+)
RewriteRule ^xyz        xyz/\?%1&%2&%3&%4   [R=301,NC,L]

上述方法的问题是我必须编写所有可能的组合,例如当其中一个缺失时的规则,以及所有可能的顺序的规则。

有没有更好的方法呢?

0 个答案:

没有答案