2016-05-29 19 views
0

元のApacheサーバーで受信した要求に基づいて2つの異なるサーバー(Server-AおよびServer-B)に要求をリダイレクトする必要があります。要求を別のドメインにリダイレクトする要求のURLをApacheで

Server-Aは別のApacheサーバーでもあり、Server-Bはweblogicサーバーです。私はWeblogicプロキシプラグインディレクティブを使用してServer-Bのリクエストをリダイレクトしています。したがって、/ consoleまたは/ mywlsappというコンテキストを持つリクエストだけをweblogic serverにリダイレクトする必要があります。その他の要求はすべてServer-Aにリダイレクトする必要があります。

ReWrite Condを使用してWLSコンテキストを除外しようとしました。しかし、それは働かなかった。

これは私の書き換えルールです。これで私を助けることができますか?

RewriteCond %{REQUEST_URI} !^/console/ 
RewriteCond %{REQUEST_URI} !^/mywlsapp/ 
RewriteCond %{HTTP_HOST} ^mycustomapp\.mycompany\.com:7090 [OR] 
RewriteCond %{HTTP_HOST} ^http://mycustomapp\.mycompany\.com:7090 
RewriteRule ^(.*) http://Server-A.mycompany.com/$1 [P] 

<Location /console> 
WLSRequest On 
SetHandler weblogic-handler 
WebLogicHost Server-B 
WebLogicPort 7110 
</Location> 

<Location /mywlsapp> 
SetHandler weblogic-handler 
WebLogicHost Server-B 
WebLogicPort 7112 
</Location> 
+0

"ReWrite Condを使用してWLSコンテキストを除外しようとしましたが、機能しませんでした。 - つまり、http://example.com/consoleもServer Aにリダイレクトされます。 –

答えて

1

私はあなたが欲しいかもしれないと思うことは、この

RewriteCond %{REQUEST_URI} !^/console/ 
RewriteCond %{REQUEST_URI} !^/mywlsapp/ 
RewriteCond %{HTTP_HOST} ^mycustomapp\.mycompany\.com$ 
RewriteCond %{SERVER_PORT} ^7090$ 
RewriteRule ^(.*)$ http://Server-A.mycompany.com/$1 [R=301,L] 

これは301しかし、上記のすべての条件がなければなりません

http://Server-A.mycompany.com/foo 

http://mycustomapp.mycompany.com:7090/foo 

をリダイレクトする必要がありますされますこのリダイレクトが実現するために実行される、明確な英語で:/console/または/mywlsapp/

  • ホストが正確にmycustomapp.mycompany.com
  • ポートが正確に7090
  • してくださいしなければならなければならないと

    1. URIが開始されないことがあり注意してくださいhttp://mycustomapp.mycompany.com:7090/consoleはリダイレクトされませんが、http://mycustomapp.mycompany.com:7090/console/となります。

    関連する問題