web-dev-qa-db-ja.com

Apache ProxyPass:要求されたURLをGETパラメーターとして宛先URLに渡します

こんにちは、リクエストされたURLをGETパラメーターとして宛先URLに渡すようにProxyPassを設定しようとしていますが、構成ファイルに書き込む方法がわかりません。

私はこのようなものを試しました:

ProxyPass ^(.*)$ http://example.com/?url=$1
ProxyPassReverse ^(.*)$  http://example.com/?url=$1

しかし、それは機能しません。手伝ってくれませんか?ありがとう!

2
Crylvarrey

ProxyPassMatchディレクティブのドキュメント に記載されているように、正規表現を使用する場合は、 ProxyPass ディレクティブを使用する必要があります。

urlはリモートサーバーの部分的なURLであり、クエリ文字列を含めることはできません。

その結果、 RewriteRuleディレクティブ を使用し、 [P]フラグ を設定して、リクエストを次のように処理する必要があります。 mod_proxyによるプロキシリクエスト。

これにはおそらく微調整が必​​要ですが、開始点は次のとおりです。

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/foo
RewriteRule ^(.*)$ /foo?url=$1 [P]
ProxyPass /foo http://example.com/
ProxyPassReverse /foo http://example.com/
2
Colt