我需要将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
有人可以指出我们做错了什么吗?
答案 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
中提供的内容