如何使用wordpress .htaccess重定向特定的查询字符串

时间:2016-09-01 14:11:53

标签: wordpress .htaccess

我需要将https://domain.com/?p=download&a=111146&b=98b307bc6f1fe4b9682b2740980c4afb等所有链接重定向到domain.com/some/page

“p = download”始终是不变的。我没有运气就试过以下内容:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING}  ^p=download$
RewriteRule (.*)  https://domain.com/customer-service/downloads-moved/  [R=301,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

有人可以指出我们做错了什么吗?

1 个答案:

答案 0 :(得分:0)

如果您想将下载页面上的用户重定向到另一个下载页面,那么您的.htaccess就是现在。

但是如果你想用params重定向到另一个页面,请在当前条件之后添加一个新条件。

RewriteCond %{QUERY_STRING}  ^p=download(.*)
RewriteRule (.*)  https://domain.com/some/page/$1  [R=301,L]

这个

https://domain.com/?p=download&a=111146&b=98b307bc6f1fe4b9682b2740980c4afb

会将您重定向到

http://www.domain.com/some/page/?p=download&a=111146&b=98b307bc6f1fe4b9682b2740980c4afb

您当前的代码是:

RewriteCond %{QUERY_STRING}  ^p=download$
RewriteRule (.*)  https://domain.com/customer-service/downloads-moved/  [R=301,L]

将重定向的内容

https://domain.com/?p=download 

https://domain.com/customer-service/downloads-moved/

<强>更新

基于OP评论:

好的,问题是你写了这个:^p=download$由于你的p=download^,它应该与$字符串完全匹配。

因此,如果您想重定向所有请求,p=download开头包含QUERY_STRING的请求,请结合我的两个建议:

RewriteCond %{QUERY_STRING}  ^p=download(.*)
RewriteRule (.*)  https://domain.com/customer-service/downloads-moved/  [R=301,L]

这意味着每个以字符串^p=download开头的内容(并且此字符串之后可能没有任何内容)将被重定向到您在RewirteRule中提供的内容