首页 > 解决方案 > 如何使用 htaccess 从 url 中删除不必要的查询字符串参数?

问题描述

我有以下网址。

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

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

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

如何实现上述重定向?

注意:-有效的 queryString 参数是 a, b, c & d,除此之外,删除新 URL(重定向 URL)中的所有这些其他参数,并且这些参数有可能以任何顺序出现,即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]

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

有没有更好的方法来做到这一点?

标签: apache.htaccessurlmod-rewriteurl-redirection

解决方案


推荐阅读