按域名选择路由

时间:2014-05-13 17:26:50

标签: asp.net-mvc asp.net-mvc-3

我有两个域名指向IIS7托管的MVC应用程序。我需要它们分开(这就是为什么我没有1转发到另一个)。因此,基本上如果您键入www.1.com或www.2.com,您将获得相同的MVC应用程序,但URL将是不同的。到目前为止跟着我?

我想要做的是根据URL调用不同的控制器/路由。这是我可以在Global.asax中配置的吗?如果是这样,怎么样?

像...一样的东西。

routes.MapRoute(
            "www.1.com", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

routes.MapRoute(
            "www.2.com", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home2", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用域路由选项,只需尝试此....

routes.Add("DomainRoute", new DomainRoute( 
   "{customer}.example.com", // Domain with parameters 
   "{action}/{id}",    // URL with parameters 
   new { controller = "Home", action = "Index", id = "" }  // Parameter 
   defaults 
))

答案 1 :(得分:-1)

我的理解是,您正在尝试使用ASP.NET构建多租户应用程序。要实现这一点,您只需要调整IIS主机头,如下所示。

  1. 在IIS中配置指向已发布应用程序版本的网站。
  2. 现在您可以编辑"绑定信息"对于本网站,可以为此网站添加尽可能多的域绑定。即www.domain1.com,www.domain2.com
  3. 最后一步为每个域配置A或CNAME记录以指向此IIS服务器IP。
  4. 如果需要根据请求的域名加载设置/主题/模块,请更进一步,您可以在此处阅读我的详细博客http://www.dotnetexpertguide.com/2012/04/aspnet-iis-dns-records-sub-domain-on.html