1

我想使用查询字符串设置重定向到新主机。我正在努力将查询添加到目标网址的末尾。这是我的示例旧网址

http://sub.oldexample.com/folder1/page1?value=ABC123

我想去

http://newexample.com/folder3/page6?value=ABC123

不涉及a 时我没有问题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规则的完美环境,因为它提供了生成的输出 url

http://htaccess.madewithlove.be/

4

2 回答 2

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,因为它会自动转移到新的 URL。

于 2013-10-03T17:54:19.770 回答
0

尝试这个:

RewriteCond %{HTTP_HOST} ^sub.oldexample.com$ [NC]
RewriteCond %{QUERY_STRING} (.+)=(.+)
RewriteRule ^/?folder1/page1$ http://newexample.com/folder3/page6 [QSA,R=301]

只是尝试使用[QSA]标志。

于 2013-10-03T18:40:29.007 回答