(私はスタック上の大量のリンクとMicrosoftのこのような記事を閲覧しましたhttp://forums.iis.net/t/1161629.aspx/1 スタック上のサブドメインに関するものは答えがないか解決策は単に機能しません。「重複」としてフラグを立てる前に、このことを覚えておいてください。質問する前に宿題をしました)
これがMVC4と関係があるかどうかはわかりませんが、私のルールは次のとおりです。
<rewrite>
<rules>
<rule name="Apply Sub-Domain as Query String Argument" stopProcessing="false">
<match url="^(.+)$" />
<conditions trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^(^local[a-z0-9]+)\.domain\.com(.*)$" />
</conditions>
<action type="Rewrite" url="https://local.domain.com{C:2}?cobrand={C:1}" logRewrittenUrl="false" />
</rule>
</rules>
</rewrite>
https://subdomain.domain.com
これをMVC4に送信するためのURLとしてこれを期待しますが、起動してhttps://local.domain.com?cobrand=subdomain
いません。
私のMVCアプリケーションでは、次のように定義されたビューがあります。
<div>
Cobrand = @HttpContext.Current.Request.QueryString["cobrand"]
</div>
<div>
Requested URL = @HttpContext.Current.Request.Url
</div>
<div>
Path = @HttpContext.Current.Request.Path
</div>
この要求されたURLの次の出力https://localdemo1.domain.com:
<div>
Cobrand =
</div>
<div>
Requested URL = https://localdemo1.domain.com
</div>
<div>
Path = /
</div>
私の希望する出力は次のとおりです。
<div>
Cobrand = localdemo1
</div>
<div>
Requested URL = https://local.domain.com?cobrand=localdemo1
</div>
<div>
Path = /
</div>
サイト設定に関する注意:
IISサイトには、次のバインディングがあります。
HTTP ::
local.domain.com
localdemo1.domain.com
localdemo2.domain.com
HTTPS :: 443(ホスト構成なし、443でホストを構成できませんが、SSLを許可するように構成されています)
PS:HTTPSなしでこれを試しましたが、まったく起動しないのと同じ結果が得られます。