2011-07-16 54 views
0

我有一臺運行在Linux上的Apache服務器。在同一臺主機上,我使用Windows Server 2008 + IIS運行Xen。 Windows獲取不同的IP地址。重定向不顯示新的URLála [PT]

主機位於NAT後面,我已將其配置爲將端口80指向Linux,將8080指向Windows。

的Apache提供了一個虛擬主機來處理傳入的請求,但這些只是需要被重定向到IIS,因此我重寫規則可以表述如下:

<VirtualHost ...> 
ServerName www.firstdomain.com 
... 
RewriteEngine On 
RewriteOptions Inherit 
RewriteRule ^/(.*) http://www.seconddomain.com:8080/$1 [R,L] 

這工作得很好,因爲對於www.seconddomain.com一個請求進入Apache VH重寫URL爲www.secondomain.com:8080,因此瀏覽器現在登陸IIS。

我的問題:我不希望用戶看到URL已更改;我希望它能像規則的傳遞選項一樣工作。

我該如何做到這一點?而且,如果重寫規則是錯誤的方法,那麼更好的方法是什麼?

更新

我發現[P]樂聲標誌的規則。這(幾乎)很好。我可以將一個文件放在我的IIS的根目錄中,並通過http://www.seconddomain.com/tst.html訪問它 - 但是,文檔中的引用沒有正確重定向,例如<img src='/images/tst.jpg' />失敗,顯示應該有一個圖像在它的位置......我還需要什麼?

+0

它被稱爲[Reverse Proxy](http://en.wikipedia.org/wiki/Reverse_proxy)。檢查這些鏈接:http://httpd.apache.org/docs/current/rewrite/proxy.html和http://httpd.apache.org/docs/current/mod/mod_proxy.html。不幸的是,我從來沒有與他們合作過,也不能真正把這作爲一個答案(這需要比這個小評論更多的細節)。順便說一句,考慮[ServerFault](http://serverfault.com/)作爲一個地方提出代理問題 - 這是更合適的地方。 – LazyOne

+0

您將需要'ProxyPassReverse'指令來修復這些破損的URL – LazyOne

+0

@LazyOne,謝謝...我解決了我的問題,但是感謝您提供反向代理服務。我正在研究它。 – ekkis

回答

0

好吧,它一切正常。我只是啞巴。 [P]正是我所需要的。