2009-04-23 3 views
0

私は基本的に2つのコードベースv1とv2を持っています。古いコードを定期的に新しいコードに移植できるように、v1サイトの特定の領域をv2にリダイレクトします。Apacheはコードベースの一部を分離するために特定のURLを書き換えます

私はこれまでにこの種のコード移植を行っていましたが、正確な内容と、それを動作させるためにいくつかのApacheブーストをしたかどうかは覚えていません。今度はv2コードにヒットすることができますが、後続のリクエストでv1の仮想ホストが使用されるため、イメージv2が要求しているv2のパスに変換されて存在しません。

だから私はv2のコードベースにリダイレクトするdomain1.com/foo/barたい、V1のバーチャルホスト(ホーム/下/ドメイン1)私が持っている中で:

RewriteRule ^/foo/?([0-9a-zA-Z]*)/?(([0-9a-zA-Z/]*))$ /home/domain2/index.php?controller=foo&action=$1&params=$2 [NC,L] 

これが正常に要求し、パスをキャッチそれをv2コードベースに追加しますが、v2コードベースではv1仮想ホストを引き続き使用します。

192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (2) init rewrite engine with requested uri /foo 
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (3) applying pattern '^/foo/?([0-9a-zA-Z]*)/?(([0-9a-zA-Z/]*))$' to uri '/foo' 
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (2) rewrite '/foo' -> '/home/domain2/index.php?controller=foo&action=&params=' 
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (3) split uri=/home/domain2/index.php?controller=foo&action=&params= -> uri=/home/domain2/index.php, args=controller=foo&action=&params= 
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (2) local path result: /home/domain2/index.php 
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (1) go-ahead with /home/domain2/index.php [OK] 
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#8175e4b0/initial] (2) init rewrite engine with requested uri /images/layouts/standard/header/header_logo.gif 
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#8175e4b0/initial] (3) applying pattern '^/foo/?([0-9a-zA-Z]*)/?(([0-9a-zA-Z/]*))$' to uri '/images/layouts/standard/header/header_logo.gif' 
... 
... 

誰でも助けることができます:もちろん、私は次のように書き換えログから出力され、[R]

が、外部へのリダイレクトを使用せずに、それはv2のコードベースを打つと、そのバーチャルホストの使用を開始したいと思います最後のステップで!?

答えて

1

他のサーバーにプロキシコールを発信する場合は、フラグにPを追加します。

+0

ありがとうございますが、これは正しく動作せず、最後にPフラグを使用したことを覚えていません。 – jmoz

+0

リダイレクトと同じように、基本的に新しいソースの完全なURL(プロトコルを含む)が必要です。ただし、Webサーバーはリダイレクトを送信せず、要求自体を行い、リバースプロキシにします。 – Lucero

関連する問題