2

COUNTRY_PATH という IIS サーバーで使用できるサーバー変数を設定しました。

あるサイトから別のサイトへのリバース プロキシの書き換えを行っており、プロキシされたサイトでこのサーバー変数にアクセスする必要があります。しかし、それは決して価値があるようには見えません。

<rule name="Country Codes For DotCom" stopProcessing="true">
    <match url="^([A-Z]{2,2})(/)(microsite)(.*)" />
     <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
          <add input="{HTTP_HOST}" pattern="\.com$" />
     </conditions>
     <serverVariables>
          <set name="COUNTRY_PATH" value="{R:1}{R:2}{R:3}" />
     </serverVariables>
     <action type="Rewrite" url="http://internal.example.com/{R:1}{R:2}{R:3}{R:4}" />
</rule>

サーバー変数はリバース プロキシで使用できますか?

次のコードを使用してサーバー変数を取得しています。

string countryPath = HttpContext.Current.Request.ServerVariables["COUNTRY_PATH"]

誰かが私が間違っていることを提案できますか?

4

1 に答える 1

1

サーバー変数を許可されたサーバー変数に追加するとき、および書き換え serverVariable 要素でそれを参照するときに、サーバー変数の前に「HTTP_」を付ける必要があります。これが正しく行われたことを確認する簡単な方法は、組み込みのタイプ ダウン機能を使用して、{H と入力し、使用可能なオプションから {HTTP_COUNTRY_PATH} を選択することです。

完全な説明については、以下の記事の次のセクションをお読みください: リクエスト ヘッダーとサーバー変数を設定するためのインバウンド リライト ルールの使用

http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-20-configuration-reference

于 2014-07-29T09:56:45.243 に答える