如何将子域重定向到ASP.NET MVC中的“区域”?

如何将子域重定向到ASP.NET MVC中的“区域”?,asp.net,asp.net-mvc,azure,subdomain,asp.net-mvc-areas,Asp.net,Asp.net Mvc,Azure,Subdomain,Asp.net Mvc Areas,我们有以下三个外部可见的“端点” api.domain.com demo.domain.com my.domain.com 我们正在使用MVC5,理想情况下,我们希望根据MVC术语将上述每个子域引导到它自己的领域 i、 e api.domain.com=>将WebAPI作为一个单独的“区域”进行路由?不确定 demo.domain.com=>路由到“demo”区域 my.domain.com=>路由到“我的”区域 support.domain.com=>路由到“支持”区域等 但是,我找不到一种方

我们有以下三个外部可见的“端点”

api.domain.com demo.domain.com my.domain.com 我们正在使用MVC5,理想情况下,我们希望根据MVC术语将上述每个子域引导到它自己的领域

i、 e

api.domain.com=>将WebAPI作为一个单独的“区域”进行路由?不确定 demo.domain.com=>路由到“demo”区域 my.domain.com=>路由到“我的”区域 support.domain.com=>路由到“支持”区域等 但是,我找不到一种方法来配置它。有人知道我们如何设置上述内容吗


最终目标是将以上所有内容作为一个MVC站点,我们可以将其部署到Azure云服务。

您是否考虑过Url重写?如果您使用的是IIS,则可以下载模块,然后在web.config中执行以下操作:

<rewrite>
   <rules>
      <rule name="Rewrite sub-domain to dir" enabled="true">
         <match url="^(.*)$" />
         <conditions>
            <add input="{HTTP_HOST}" pattern="^subdomain\.domain\.co\.uk$" />
         </conditions>
         <action type="Rewrite" url="subdomain/{R:1}" />
      </rule>
   </rules>
</rewrite>
资料来源:

参考

回答者在/Admin/文件夹下的区域示例如下:

public override void RegisterArea(AreaRegistrationContext context)
{
    context.MapRoute(
        "Admin_default",
        "Admin/{controller}/{action}/{id}",
        new { action = "Index", id = UrlParameter.Optional },
        new { controller = "Branch|AdminHome|User" },
        new[] { "MyApp.Areas.Admin.Controllers" }
    );
}

您是否正在寻找服务器端重定向,例如,让浏览器地址栏仍然显示demo.domain.com,但让服务器在demo区域目录之外工作;或者客户端重定向,其中浏览器地址栏显示domain.com/demo/?子域如何?