附加查询字符串的apache RedirectMatch

时间:2012-08-09 01:29:08

标签: apache wamp

我正在尝试在Apache中设置一个添加查询字符串的重定向。我不认为我想使用RewriteRule,因为目标是一个不同的Web服务器。我现在有这样的事情:

<VirtualHost 127.0.0.5:4039>
    ServerName localhost.redirect
    RedirectMatch (.*) http://otherserver.com$1?originalHost=127.0.0.5
</VirtualHost>

这适用于http://127.0.0.5:4039/foo的请求被重定向到http://otherserver.com/foo?originalHost=127.0.0.5。问题是http://127.0.0.5:4039/foo?another=value也被重定向到http://otherserver.com/foo?originalHost=127.0.0.5,我想要保留原始查询字符串的http://otherserver.com/foo?another=value&originalHost=127.0.0.5之类的东西。

有关如何执行此操作的任何提示?我在WAMP上运行,并且对这个apache事情不太了解。

这里有一个相关问题,其中某人有一个重定向,其中目标包含查询字符串:Apache: Redirect domain to other domain with appended querystring。他们并没有试图追加一个查询字符串,只需设置一个。

1 个答案:

答案 0 :(得分:1)

你可能不得不咬紧牙关并使用mod_rewrite。它有一个标志,用于将现有查询字符串附加到目标查询字符串。您将RedirectMatch替换为:

RewriteEngine On
RewriteRule ^(.*)$ http://otherserver.com$1?originalHost=127.0.0.5 [L,QSA,R=302]

它看起来几乎一样,并且它将重定向302(如果您认为它是永久性的,您可以替换为301),除此之外,现有的查询字符串将整齐地附加到{ {1}}。