我有以下网址。
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=4
或d=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]
上述方法的问题是我必须编写所有可能的组合,例如当其中一个缺失时的规则,以及所有可能的顺序的规则。
有没有更好的方法呢?