これは非常に基本的な質問のようですが、簡単な解決策を見つけるのに苦労しているので、これに関する私との助けと忍耐に感謝します:
特定のURLをリダイレクトするようにApacheプロキシサーバーを構成します。たとえば、www.olddomain.comのWebブラウザHTTPリクエストがプロキシサーバーに渡され、プロキシサーバーがリクエストをwww.newdomain.comにルーティングしてレスポンスを送信します。プロキシサーバーに送信され、Webサーバーに渡されます。
とてもシンプルに思えますが、Apacheでこれを実現する方法はわかりません。 Squid/Squirmがこの機能を提供していることを知っているので、本当に基本的な何かが欠けていると思います。 RewriteRuleを使用してURLを動的に変更し、それをプロキシサーバーに渡すことができることはわかっていますが、実際には逆を行いたいので、プロキシサーバーは元のURLを受信し、RewriteRuleを適用し、新しいHTTP要求を転送します。 URL。
それが理にかなっていると思います。助けてくれてありがとう。
以前の回答に対するコメントから、転送プロキシとしてApache(ProxyRequests On)を使用していることがわかります。 mod_rewriteを使用して、特定のURLのプロキシパスを実行できます。
あなたはおそらくあなたのApache設定でこのようなものを得ました:
ProxyRequests On
ProxyVia On
<Proxy *>
Order deny,allow
Allow from xx.xx.xx.xx
</Proxy>
次に、www.olddomain.com/fooからwww.newdomain.com/barへのすべてのリクエストをプロキシ通過させるために、次を追加する必要があります
RewriteEngine On
RewriteCond %{HTTP_Host} ^www\.olddomain\.com$
RewriteRule /foo(.*)$ http://www.newdomain.com/bar/$1 [P,L]
これは何ですか:
www.olddomain.com
、RewriteRuleが起動します結果の例:
私があなたを正しく理解しているなら、あなたはおそらく以下を見たいと思います: mod_proxy 名前ベースの仮想ホストと組み合わせて
これがどのように見えるかの小さな例です。 www.olddomain.com仮想ホストからのすべてのリクエストは、www.newdomain.comからリクエストされ、Apacheによって書き換えられます。
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.olddomain.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://www.newdomain.com/
ProxyPassReverse / http://www.newdomain.com/
ProxyPassReverseCookieDomain www.newdomain.com www.olddomain.com
</VirtualHost>