我们有以下三个外部可见的'端点'
- api.domain.com
- demo.domain.com
- my.domain.com
我们正在使用MVC5,理想情况下,我们希望将上述每个子域引导到它自己的区域(每个MVC术语)。
。
- 路由到WebAPI(作为一个单独的'区域'?不确定)
- demo.domain.com =>到"demo"区域的路由
- my.domain.com =>到"my"区域的路由
- support.domain.com =>到"支持"区域的路由(等等)
然而,我找不到一种方法来配置它。有人知道我们如何设置上面的吗?
最终目标是将上述所有内容作为一个单一的MVC站点,我们可以将其部署到Azure云服务。
你看过Url重写吗?如果你使用IIS,那么你可以下载url重写模块,然后在web。你可以这样做:
<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>
来源:http://www.azurecurve.co.uk/2011/12/how-to-rewrite-a-sub-domain-to-a-directory-in-iis/
参考答案在Mvc区域路由?
回答者在/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" }
);
}