2012-08-09 35 views
1

我想在Apache中設置一個重定向,添加一個查詢字符串。我不認爲我想使用RewriteRule,因爲目標是一個不同的網絡服務器。我現在是這樣的:apache重定向追加查詢字符串

<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。他們並不試圖追加一個querystring,只是設置一個。

回答

1

你可能會不得不咬住子彈並使用mod_rewrite。它有一個用於將現有查詢字符串附加到目標查詢字符串的標誌。你會替換RedirectMatch有:

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

它會看起來幾乎相同,它會以302(你可以用301代替,如果你寧願它是永久性的),除了與重定向這個,現有的查詢字符串會整齊地追加到?originalHost=127.0.0.5