元のリクエストのヘッダー値をパラメーターとして宛先URLに配置するリバースプロキシを設定する必要があります。この理由は純粋にアプリケーション固有であり、残念ながらこのアプリケーションを変更することはできません。たとえば、次のものが必要です https://a.com httpヘッダー付きmyparam = abcdにプロキシする必要があります http://b.com/?val=abcd ==
そのようなタスクを実行するようにIISまたはApacheを構成することは可能ですか?その場合、その方法を説明できますか?
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]
関連リンク:
IISの場合、 RL書き換え拡張機能 を使用できます:
IIS URL Rewrite 2.0を使用すると、Web管理者は、ユーザーが覚えやすく、検索エンジンが見つけやすいURLを実装するための強力なルールを作成できます。ルールテンプレート、書き換えマップ、.NETプロバイダー、およびIIS Manager)に統合されたその他の機能を使用することにより、Web管理者は、HTTPヘッダー、HTTP応答、または要求に基づいてURL書き換え動作を定義するルールを簡単に設定できます。ヘッダー、IISサーバー変数、さらには複雑なプログラムルール。さらに、Web管理者は、書き換えルールで表現されたロジックに基づいて、リダイレクトを実行したり、カスタム応答を送信したり、HTTP要求を停止したりできます。
動作:IIS 7、IIS 7.5、IIS 8
ウォークスルーは次の場所にあります: RL書き換えモジュールの書き換えルールの作成 。