2

Sun One (iPlanet) 6.1 で静的 HTML を実行しているサイトを、Apache の Drupal サイトに移行しています。

Drupal に移行できるようになるまで、古いサーバーを実行し、古いコンテンツを提供し続ける必要があります。最も簡単な方法は、この古いコンテンツを指すリバース プロキシ エントリを Apache に用意することだと考えました。

サーバーコンテキストレベルで httpd.conf にあるものは次のとおりです。

RewriteEngine On
RewriteLogLevel 9
RewriteLog "/var/log/httpd/rewrite_log"
RewriteRule offices/ist/?(.*)$ http://oldserver/offices/ist/$1 [P]
<Location /offices/ist/>
ProxyPassReverse /
</Location>

このようなリクエストを行うと、すべて正常に機能します。

http://newserver/offices/ist/somedir/

同じリクエストを (末尾のスラッシュなしで) 行うと、古いサーバーの名前を使用して 302 リダイレクトされます。

http://newserver/offices/ist/somedir    =>  Redirect to http://oldserver/offices/ist/somedir/

Apache は、クライアントに送り返す前にこのリダイレクトをキャッチするべきではありませんか?

これらのリクエストが古いサーバーに送信される前に、これらのリクエストを Apache に書き換えさせることはできますか?

4

2 に答える 2

0

よくわかりませんが、(.*)貪欲すぎるかもしれません。

Apache mod_rewriteを調べましたが、。を使用した例は見つかりませんでした?

または、 Apachemod_proxyの例/?に似たものを使用せずに試してみることをお勧めします。

ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar 
于 2013-02-13T08:29:42.480 に答える
0

この問題は、Sun One のリダイレクト ヘッダーが原因です。
Apache を別の Apache サーバーにプロキシすると、問題は解決します。Apache は、クライアントに送信される前に、バックエンド Apache サーバーによって送信されたリダイレクトをキャッチできます。

于 2013-02-23T03:57:25.053 に答える