サブ変数の値でサーバー変数を変更する書き換えルールがあります。 これは私が2つのURLをテストしているsubdomain.mydomain.nl/somethinghereではなくsubdomain.mydomain.nlIIS 7.5のサーバー変数の書き換え
<rule name="Change code" enabled="true" patternSyntax="ECMAScript" stopProcessing="false">
<match url=".*" ignoreCase="true" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{SERVER_NAME}" pattern="(www\.)?(\w+)\.mydomain\.nl" />
<add input="{SERVER_NAME}" pattern="^www.mydomain.nl.*" negate="true" />
<add input="{SERVER_NAME}" pattern="^mydomain.nl.*" negate="true" />
</conditions>
<serverVariables>
<set name="MYVARIABLE" value="{C:2}" />
</serverVariables>
<action type="None" />
</rule>
上で動作します: 1:subdomain.mydomain.nl/somethinghere 2:subdomain.mydomain.nlを
は、私は次のコードでPHPの変数を取得:
echo $_SERVER['MYVARIABLE'];
URL 1の場合には、これの出力は、「サブドメイン」されます。
URL 2の場合、この出力は ""です。
URL 1の出力は正しいですが、URL 2の出力も "サブドメイン"にする必要があります。
私は両方の要求のトレースを実行しており、両方がルールが一致して実行されていることを示しています。
誰でも手伝ってもらえますか?
ご回答いただきありがとうございます。これが解決策です。本当に奇妙なことに、私はこの文書を見つけることができませんでした。 – user1071188
リクエストヘッダーを設定するには、HTTP_を追加する必要があります。これは、[こちら](http://learn.iis.net/page.aspx/665/url-rewrite-module-20-configuration-reference/#Setting_Server_Variables)(「要求ヘッダーに関する注意」を参照)に記載されています。しかし、なぜ私が困惑しているのは、要求ヘッダーの設定は常に機能するが、サーバー変数の設定は必ずしも機能するとは限らないからです。 –
ありがとうございました。あなたは私の命を救いました! –