ヘッダー値を URL のパラメータとして設定するリバース プロキシ

ヘッダー値を URL のパラメータとして設定するリバース プロキシ

元のリクエストのヘッダー値を宛先 URL のパラメータとして設定するリバース プロキシを設定する必要があります。この理由は完全にアプリケーション固有のものであり、残念ながらこのアプリケーションを変更することはできません。たとえば、次のものが必要です。https://a.comhttpヘッダーmyparam=abcdでプロキシする必要があるhttp://b.com/?val=abcd

このようなタスクを実行するように IIS または Apache を構成することは可能ですか? 可能であれば、その方法を説明していただけますか?

答え1

Apache 2.4 でテスト済み:

# (In a VirtualHost for a.com)
RewriteEngine on
RewriteRule ^(.*)$ http://b.com$1?val=%{HTTP:myparam} [QSA,P]

書き換えの例 (ヘッダーmyparamに値がある場合myvalue):

  • a.comなるhttp://b.com?val=myvalue
  • a.com/path/hereなるhttp://b.com/path/here?val=myvalue
  • a.com/path?a=b&c=dなるhttp://b.com/path?a=b&c=d&val=myvalue

myparamヘッダーが存在しない場合は、a.com/xにリダイレクトされますhttp://b.com/x?val=。 にリダイレクトする場合はhttp://b.com/x、上記の次の長いバージョンを使用できます。

RewriteEngine on
RewriteCond %{HTTP:myparam} .
RewriteRule ^(.*)$ http://example.com$1?val=%{HTTP:myparam} [QSA,L,P]
RewriteRule ^(.*)$ http://example.com$1 [P]

関連リンク:

答え2

IISの場合は、URL書き換え拡張機能:

IIS URL Rewrite 2.0 を使用すると、Web 管理者は強力なルールを作成して、ユーザーが覚えやすく、検索エンジンが見つけやすい URL を実装できます。ルール テンプレート、書き換えマップ、.NET プロバイダー、および IIS マネージャーに統合されているその他の機能を使用することで、Web 管理者は、HTTP ヘッダー、HTTP 応答または要求ヘッダー、IIS サーバー変数、さらには複雑なプログラム ルールに基づいて URL 書き換え動作を定義するルールを簡単に設定できます。さらに、Web 管理者は、書き換えルールで表現されたロジックに基づいて、リダイレクトを実行したり、カスタム応答を送信したり、HTTP 要求を停止したりできます。

対応バージョン: IIS 7、IIS 7.5、IIS 8

ウォークスルーは次の場所にあります: URL 書き換えモジュールの書き換えルールの作成

関連情報