2011-07-16 10 views
0

私はLinux上でApacheサーバを実行しています。同じホスト上でWindows Server 2008 + IISでXenを実行しています。 Windowsは別のIPアドレスを取得します。新しいURLを表示せずにリダイレクトする[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が変更されたことをユーザーに見せたくありません。ルールのパススルーオプションが機能するように振る舞いたい。

どうすればこの問題を解決できますか?そして、書き換えルールが間違ったアプローチであれば、より良いものは何ですか?

更新

Iは、ルールの[P]ロキシーフラグを見つけました。これは(ほとんど)素晴らしいです。 IISのルートにファイルを置いてhttp://www.seconddomain.com/tst.html経由でアクセスできますが、ドキュメント内の参照は適切にリダイレクトされません。 <img src='/images/tst.jpg' />が失敗し、その場所にイメージがあったはずです...他に何が必要ですか?

+0

[リバースプロキシ](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

このような壊れたURLを修正するには、ProxyPassReverseディレクティブが必要です – LazyOne

+0

@LazyOne、ありがとう...私は私の問題を解決しましたが、リバースプロキシを提案してくれてありがとう。私はそれを調べている。 – ekkis

答えて

0

すべて正常です。私はただばかげていた。 [P]はまさに私が必要としていたものです。

関連する問題