Наша текущая хостинговая компания не допускает записи заголовка узла для нескольких доменов в разные виртуальные каталоги в рамках одного основного домена, поэтому у нас есть некоторый код в EventHandler Global.asax Begin_Request.Пока это работает отлично!
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 - совпадения иидет в ~ / Other / Default.aspx (каталог ~ / Other / также является виртуальным каталогом, и мы используем ASP.Net).
Это не так:
www.seconddomain.com - www.seconddomainname.com/second/ FAILS !!!
Каталог «~ / SECOND /» также является виртуальным каталогом, однако мы используем ASP.Net MVC 3 с маршрутизацией, получаем ошибку «HTTP 403».«что означает, что нам нужно разрешить права доступа к файлу, каталог« ВТОРОЙ »настроен как виртуальный веб-каталог.
РЕДАКТИРОВАТЬ: добавлен маршрут
routes.MapRoute(
"Default", // Route name
"/SECOND/{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
Мы пропустили что-то очень простое, возможно, или нет, есть ли общее решение для этого типа хостинга, маршрутизации и конфигурации ASP.Net?