.htaccess 使用查询字符串的htaccess重定向不起作用

u91tlkcl  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(164)

enter code here我有一个WordPress网站。
我有这样的子公司的URL:

https://example.com/folder/?ref=23432
https://example.com/folder/?ref=13442
etc.

我想重定向任何以?ref=结尾的URL到另一个域。
例如,https://example.com/folder/?ref=应重定向到https://example.org/product/
我该怎么做?谢谢你的时间。
我试过了

Redirect 301 example.com/folder/?ref   https://example.org/product/

谢谢你@MrWhite。我尝试了以下方法,但没有成功。

RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)ref=
RewriteRule ^example.com https://www.example.org/product/$0 [R=302,L]
6mw9ycah

6mw9ycah1#

RewriteRule ^example.com https://www.example.org/product/$0 [R=302,L]

RewriteRule指令只匹配URL-path(去掉斜杠前缀),所以这应该匹配folder/(根据您的示例),而不是主机名。
这里不需要 * substitution * 字符串中的$0反向引用,因此应该简单地为:

:
RewriteRule ^folder/$ https://www.example.org/product/ [R=302,L]

如果您确实需要检查请求的主机名(即example.com)-如果example.comexample.org指向同一服务器-则需要单独的 * condition *(RewriteCond指令)。

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com [NC]
RewriteCond %{QUERY_STRING} (^|&)ref=
RewriteRule ^folder/$ https://www.example.org/product/ [R=302,L]

请注意,正则表达式(^|&)ref=与查询字符串中的ref= URL参数 * anywhere * 匹配,如果在它前面碰巧有其他URL参数的话。
参考:

相关问题