使用查询字符串参数的 Htaccess 301 重定向

Htaccess 301 redirect with query string params

这太基础了,你不得不问为什么实施起来这么复杂。

只需要将一个 url 重定向到同一域中的另一个,但是 url 包含查询字符串参数:

我试过了:

RewriteRule ^article.php?section=exclusive&id=543 articles/view/4639 [R=301,L]

我无法找到页面 - 重定向没有发生。我在同一个 htaccess 中有其他重定向可以工作。查询字符串参数导致问题,转义它们也无济于事。

注意两个 url 的 id 不一样,因此我不想要一个聪明的重写规则,它从一个 url 转换为另一个映射查询字符串到新的参数。我只想要一个从 A 到 B 的快速而肮脏的映射。

更新

我试过它重定向但它正在将我的旧查询字符串添加到新 url 的末尾。我怎样才能防止这种情况发生?

RewriteCond %{REQUEST_URI} ^/article\.php$
RewriteCond %{QUERY_STRING} ^section=exclusive
RewriteRule ^$ http://www.onlinegooner.com/articles/view/3000 [R=301,L]

输入url是:mydomain.com/article.php?section=exclusive

您可以使用这条规则:

RewriteCond %{QUERY_STRING} ^section=exclusive [NC]
RewriteRule ^article\.php$ /articles/view/3000? [R=301,L,NC]
目标中的

? 将去掉之前的查询字符串。