1

我正在尝试重定向到另一个站点。以下规则适用于我的所有其他规则,.htacces但以下规则似乎不起作用,经过大量尝试和错误后,我无法弄清楚原因。

RewriteCond %{HTTP_HOST} ^www.oldexample.com$ 
RewriteRule ^folder3/page.php?value=(.*)$ http://newexample.com/folder1/page.php?value=$1 [L,R=301,NC]

我尝试了以下重定向但没有(.*)添加的值

RewriteCond %{HTTP_HOST} ^www.oldexample.com$ 
RewriteRule ^folder3/page.php?(.*)$ http://newexample.com/folder1/page.php?$1 [L,R=301,NC]

这可能是符号的问题=吗?我试图逃避它并逃避.也但无济于事

4

1 回答 1

0

您无法匹配重写规则中的查询字符串(?之后的所有内容),您需要使用 aRewriteCond并匹配%{QUERY_STRING}. 但是,看起来您只是想传递查询字符串,没有改变。所以你不需要弄乱它:

RewriteCond %{HTTP_HOST} ^www.oldexample.com$ 
RewriteRule ^folder3/page.php$ http://newexample.com/folder1/page.php [L,R=301,NC]

查询字符串将自动附加。您需要确保此规则高于任何路由规则,因为它需要在任何内部重写之前发生。

于 2013-10-03T14:32:59.633 回答