2014-05-13 48 views
0

我有2個域名指向由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 
     ); 

謝謝!

+0

不是我的知識。相反,我會讓IIS中的UrlRewrite重寫你的URL,例如:「http://www.2.com/2/ {controller} ... etc」,其中域之後的2是被重寫的{HTTP_HOST}參數。然後你可以在MVC中創建你的路線的一部分。 – vcsjones

+0

似乎是一個很好的解決方案。任何風險通過安裝和使用ext破壞我現有的IIS設置? – Zenacity

+0

不,如果它導致問題,禁用/卸載非常簡單。 – vcsjones

回答

-1

我的理解是,您正在嘗試使用ASP.NET構建多租戶應用程序。爲了達到這個目的,你只需按照下面的方法調整IIS主機頭。

  1. 在IIS中配置指向已發佈版本應用程序的網站。
  2. 現在您可以編輯本網站的「綁定信息」,並且可以爲此網站添加儘可能多的域綁定。即www.domain1.com,www.domain2.com
  3. 最後一步配置每個域的A或CNAME記錄以指向此IIS服務器IP。

進一步考慮這一點,如果它是需要加載基於請求的域名設置/主題/模塊,您可以閱讀我的詳細這裏博客http://www.dotnetexpertguide.com/2012/04/aspnet-iis-dns-records-sub-domain-on.html

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 
))