如何将子域重定向到ASP.NET MVC中的“区域”?
我们有以下三个外部可见的“端点” 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=>路由到“支持”区域等 但是,我找不到一种方法来配置它。有人知道我们如何设置上述内容吗如何将子域重定向到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=>路由到“支持”区域等 但是,我找不到一种方
最终目标是将以上所有内容作为一个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/?子域如何?