首页 > 解决方案 > htaccess 重定向查询字符串,但已编码?到 &

问题描述

我想重定向

https://www.aaa.com/query?v=abc123_ABC

至: https ://bbb.com/?url=https://www.aaa.com/query?v=abc123_ABC

我在 .htaccess 中使用它:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ https://bbb.com/?url=https://www.aaa.com/$1  [L,B,NE,NC,QSA,R=301]
</IfModule>

但输出是: https ://bbb.com/?url=https://www.aaa.com/query&v=abc123_ABC

这 ?被转换成&,代码有什么问题?谢谢。

==== 你可以在这里测试它: https ://htaccess.madewithlove.be/

标签: apache.htaccessredirectmod-rewriteurl-rewriting

解决方案


根据 OP 的要求和显示的示例,您能否尝试以下操作。

RewriteEngine ON
RewriteCond %{THE_REQUEST} \s(/query)\?(v=abc123_ABC)\s [NC]
RewriteRule ^(.*)$ https://bbb.com/?url=https://%{HTTP_HOST}%1?%2 [NE,L]

推荐阅读