我們目前的託管公司不允許的一個主域名下多個域不同的虛擬目錄的主機頭項,所以我們必須在Global.asax Begin_Request事件處理一些代碼。這工作很好迄今!ASP.Net MVC 3路由使用嵌套的虛擬目錄,403錯誤
protected void Application_BeginRequest(object sender, EventArgs e)
{
Dictionary<string, string> domains = new Dictionary<string, string>() { { "otherdomain.com", "~/Other/Default.aspx" }, { "seconddomain.com", "~/SECOND/" } };
string requestedDomain = Request.ServerVariables["SERVER_NAME"].ToLower();
foreach (var domain in domains.Keys)
{
if (requestedDomain.Contains(domain))
Response.Redirect(domains[domain]);
}
}
這些工作:
www.primarydomain.com - 不匹配和〜/ Default.aspx的
www.otherdomain.com落空 - 比賽,去到〜/其它/ Default.aspx的( 「〜/ Other /」目錄也是一個虛擬目錄,我們正在使用ASP.Net)。
這不:
www.seconddomain.com - www.seconddomainname.com/second/失敗!
的「〜/秒/」目錄也是一個虛擬目錄,但是我們使用ASP.Net MVC 3路由,我們得到的錯誤是「HTTP 403」,這將表明,我們需要允許文件的權限,「第二「目錄被配置爲虛擬Web目錄。
編輯:新增航線
routes.MapRoute(
"Default", // Route name
"/SECOND/{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
難道我們錯過了一些非常基本的,很可能,否則是沒有這種類型的主機,路由和ASP.Net配置的整體解決方案?
你的MVC應用程序 – Lloyd 2012-03-13 12:15:47
與路線@Lloyd我更新的代碼配置做什麼路線。謝謝 – 2012-03-13 12:36:58