2011-12-23 53 views
1

私はこの設定を使用しています正しいリンク取得するには、このサブドメインblog.fujiy.netASP.NET MVCとサブドメインのURL

を使用して、〜/ブログで仮想アプリケーションを持っている:

<rewrite> 
    <rules> 
    <rule name="Remove Virtual Directory"> 
     <match url=".*" /> 
     <action type="Rewrite" url="{R:0}" /> 
    </rule> 
    </rules> 
</rewrite> 

をしかし、誰かがblog.fujiy.net/blogにアクセスするとblog.fujiy.netにリダイレクトされません。

私はこれを修正できません。私は非常に多くの設定を試しました.... URLが/ blog/IISで始まる場合に条件を実行しようとするたびに、常にtrueを返します。その後、無限ループが発生します。

答えて

0

Regexは私を恐れていますが、これを試してみてください。それは簡単なテストで動作するようです:

<rewrite> 
    <rules> 
     <rule name="Remove Virtual Directory" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions> 
       <add input="{HTTP_HOST}" pattern="^blog\..*" /> 
       <add input="{PATH_INFO}" pattern="^/blog" /> 
      </conditions> 
      <action type="Redirect" url="/" redirectType="Permanent" /> 
     </rule> 
    </rules> 
</rewrite> 
0

ザ・サポートのシナリオは、このときだけアウト・オブ・ボックス:

あなた二つ以上のアプリケーションを持っている:server.example.com/fooとサーバーにそれらを呼び出します.example.com/bar。 IISの書き換えを設定して、単純なサブドメイン→アプリケーションパスマッピングを行うことができます。 foo.example.com - > server.example.com/foo; foo.example.com/path-> server.example.com/foo/path; bar.example.com/path-> server.example.com/bar/pathなど。これらの例では、サブドメイン自体を直接アプリケーションルートにマップする必要があります。

これを実行するには、foo.example.com/customers/view/42がserver.example.com/foo/customers/view/42にマップされます。これは標準の{controller}/{アクション}/{id}ルートは{controller = customers、action = view、id = 42}にトークン化します。