1

条件に基づいて、Apache に REQUEST_URI を変更してから、新しい REQUEST_URI を別の Web サーバーにプロキシさせたい

これを行うのはかなり面倒ですが、インターネット上のすべての例で結果が得られるわけではありません。

たとえば、私の URL: http://my.domain.com/otherserver/dir2/page1.html?param1=true%param2=10 REQUEST_URI の先頭に基づいて、REQUEST_URI を /dir2/page1.html に変更したい?param1=true%param2=10 これを他のWebサーバーに渡します

例えば

RewriteCond %{REQUEST_URI} ^/otherserver
RewriteRule ^(.*) ^/otherserver / [N]
RewriteRule ^(.*)$ http://localhost:8080%{REQUEST_URI} [P]

ただし、これでは目的の結果が得られません。

助言がありますか?

4

1 に答える 1

1

これを別の方法で試してみることをお勧めします。たとえば、フラグmod_proxyの代わりにto を使用することをお勧めします(フラグドキュメントで、「このフラグを回避し、可能な限り [ ディレクティブ]を優先する」と書かれている箇所と、 Rewrite を使用しない場合も参照してください)。Pmod_rewritemod_rewritePmod_proxy

私が正しく理解している場合、あなたが望む動作は「フォームのすべてのリクエストに対して、^/otherserver(.*)リクエストをにプロキシするhttp://localhost:8080$1」です。When Not To Use Rewrite ページは、これが次のように実行できることを示唆しています

ProxyPass /otherserver http://localhost:8080/

...しかし、私の言葉を受け入れる前にmod_proxyドキュメントでそれを確認してください。

于 2013-01-04T15:28:23.413 に答える