我有一臺運行在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' />
失敗,顯示應該有一個圖像在它的位置......我還需要什麼?
它被稱爲[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
您將需要'ProxyPassReverse'指令來修復這些破損的URL – LazyOne
@LazyOne,謝謝...我解決了我的問題,但是感謝您提供反向代理服務。我正在研究它。 – ekkis