我想设置一个带有查询字符串的新主机的重定向。我正在努力将查询添加到目标网址的末尾。这是我的示例旧网址
http://sub.oldexample.com/folder1/page1?value=ABC123
我想转到
http://newexample.com/folder3/page6?value=ABC123
如果不涉及query
,我没有问题,例如以下代码完美无缺,但不适合
RewriteCond %{HTTP_HOST} ^sub.oldexample.com$
RewriteRule ^folder1/([A-Za-z][A-Za-z][A-Za-z][0-9][0-9][0-9])$ http://newexample.com/folder3/$1 [L,R=301,NC]
我试图包含query
条件,但它失败了
RewriteCond %{HTTP_HOST} ^sub.oldexample.com$ [NC]
RewriteCond %{QUERY_STRING} ^(value=ABC123)
RewriteRule ^$ http://newexample.com/folder3/page6?%1 [L,R=301,NC]
我发现以下链接是测试.htaccess
规则的完美环境,因为它提供了生成的输出网址
答案 0 :(得分:1)
以下规则适合您:
RewriteCond %{HTTP_HOST} ^sub\.oldexample\.com$ [NC]
RewriteCond %{QUERY_STRING} (^|&)value=ABC123(&|$) [NC]
RewriteRule ^folder1/page1/?$ http://newexample.com/folder3/page6 [L,R=301,NC]
您无需复制QUERY_STRING
,因为它会自动转移到新网址。
答案 1 :(得分:0)
试试这个:
RewriteCond %{HTTP_HOST} ^sub.oldexample.com$ [NC]
RewriteCond %{QUERY_STRING} (.+)=(.+)
RewriteRule ^/?folder1/page1$ http://newexample.com/folder3/page6 [QSA,R=301]
尝试使用[QSA]
标记。