2009-11-09 22 views
9

mod_rewriteを使用して別のサーバーでホストされているアドレスを解決できますか?外部ページのMod-書き換えルール?

が、私はこのURLセットアップしたいと:

http://www.myserver.com/myfolder/ 

は、実際に解決するには:もしそうなら

http://www.anotherserver.com/anotherfolder/ 

、あなたはするRewriteRule例を提供することができますか?

-thanks

答えて

17

あなたはmod_proxyによって要求されている代替URLを取得するにはmod_rewriteルールでP flagを使用することができますサーバーをクライアントに戻します。

+1

mod_proxy_httpモジュールを組み込む必要があることに注意してください。 – Christian

+0

@Christianは、「mod_proxy_httpモジュールをインクルードする」という意味で、より詳細な情報を提供できますか? – user1111929

+0

こんにちは@ user1111929、こちらをご覧ください。 https://httpd.apache.org/docs/2.4/mod/mod_proxy_http.html - この書き換えが有効になる前に、このモジュールを有効にする必要があります。 – Christian

3

いいえ、トンネリングは、あなたがこのためにCGIスクリプトを使用する必要があるだろう、ことはできません。 [R]フラグの有無にかかわらず

RewriteRule ^(.*) http://new.example.com/$1 

、それが自動的に新しいドメインにユーザーをリダイレクトします:しかし、あなたはをリダイレクトすることができます。

編集:mod_proxy[P]フラグを使用してトンネル要求を送信することは明らかです。ガンボの答えを見てください。クライアントがサーバーから/myfolder/を要求されたときに今、それはhttp://other.example.com/anotherfolder/を要求し、それからの応答を送信します

RewriteEngine on 
RewriteRule ^myfolder/$ http://other.example.com/anotherfolder/ [P] 

+0

この簡単な方法を見つけるクールおかげで、ユーザーは、この場合にはリフレッシュを参照してくださいでしょうか? (つまり、アドレスバーにはhttp://new.example.comが表示されます)。 CGIスクリプトが必要だと言ったら、探してみたいことの手がかりを教えてもらえますか?歓声 – sthg

+0

はい、ユーザーには新しいURLが表示されます。あなたがこれをしたくない場合は、google(またはStackOverflowで検索)の "プロキシソフトウェア"を探してください。 – Boldewyn

+0

偉大な - ありがとう。 – sthg

-2

ねえ、私は(ちょうどローカルホストでテスト)の書き換えを試してみましたが、うまくいきませんでした

また、私は

Redirect /myfolder external_url