使用动态参数重定向 .htaccess

Redirect with dynamic parameters .htaccess

urls 中有一个动态参数s=changingtext。需要识别这个参数,再给它加一个参数,重定向得到s=changingtext&post_type=product.

例如有一个link

example.com/?min_price=0&max_price=0&s=test

它应该总是重定向到

example.com/?min_price=0&max_price=0&s=test&post_type=product

提供 URL 参数的顺序并不重要,那么您可以使用 .htaccess 文件顶部的 mod_rewrite 这样做:

RewriteEngine On

RewriteCond %{QUERY_STRING} (^|&)s=[^&]+
RewriteRule ^ %{REQUEST_URI}?post_type=product [QSA,R=302,L]

这首先添加 post_type URL 参数,然后使用 QSA(查询字符串附加)标志附加现有查询字符串。 IE。在您的示例中,它将被重定向到 example.com/?post_type=product&min_price=0&max_price=0&s=test.

这专门检查非空 s URL 参数。一个空的 URL 参数,例如。 foo=1&s=&bar=1 不会被重定向。

这适用于任何 URL 路径。