2010-05-22 47 views
2

我希望用戶能夠在他們的瀏覽器加載網址,而不是重定向:如何使用的Apache反向代理的動態URL

http://example.com/abc/{var1}/{var2}/def 

我想example.com的Apache 2.2服務器採取這一請求,「無形」,並沒有重定向反向代理它:

http://other.example.com/abc/{var1}/{var2}/def 

我花了幾個小時試圖重寫規則,的ProxyPass,ProxyPassMatch和ProxyPassReverse,所有的不同組合都無濟於事。這是我目前的嘗試,似乎做一個重定向到/測試,而不是一個隱形代理。

RewriteRule ^/abc/([^/\.]+)/([^/\.]+)/def/?$ /test/abc/$1/$2/def [P] 
ProxyPass /test http://other.example.com/ 
ProxyPassReverse /test http://other.example.com/ 

回答

0

[P]標誌已具有ProxyPass的功能。你只需要添加一個ProxyPassReverse。另外,如果您想要代理,則必須使用完整的url作爲RewriteRule的第二個操作數。

RewriteRule ^/abc/([^/\.]+)/([^/\.]+)/def/?$ http://other.example.com/abc/$1/$2/def [P] 
ProxyPassReverse/http://other.example.com/ 
+0

不幸的是,該配置會產生無限的301重定向循環。如果我取出ProxyPassReverse,它將重定向到瀏覽器URL中的其他服務器。思考? – 2010-05-22 15:56:38

+0

發佈您的日誌(訪問日誌並用rewriteloglevel 9重寫日誌)。 – Artefacto 2010-05-22 22:17:43