2

(私はスタック上の大量のリンクと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なしでこれを試しましたが、まったく起動しないのと同じ結果が得られます。

4

1 に答える 1

1

これが私のために働くものです:

<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="Redirect" url="https://local.domain.com{R:0}?cobrand={C:1}" />
    </rule>
  </rules>
</rewrite>

match urlasが変更され(空の値を受け入れる)、それtype="Redirect"が。に置き換わっていることに注意してくださいtype="Rewrite"

{C:2}この場合は機能しませんが(理由はわかりませんが...)、代わりに使用できます{R:0}

于 2013-01-24T02:21:16.873 に答える