Я хочу создать службу для некоторых из моих клиентов, которая позволит им иметь свою собственную веб-страницу на сайте MVC3, который я построил.
Я хочу, чтобы у бизнеса была возможность иметь URL, которыйвыглядит как www.BusinessName.mydomain.com
Возможно ли создать маршрут в MVC3, который позволит мне это сделать?
Спасибо за вашу помощь
Хорошо, такЯ думаю, что я продвинулся немного дальше.
В идеале я хочу иметь возможность иметь подстановочный знак для субдомена в IIS, однако из проведенного мною исследования кажется, что это невозможно.
Я вручную добавил www.mycompany.mydomain.com в IIS и обновил свой global.ascx, чтобы он содержал
public class SubDomainRoute : RouteBase
{
public override RouteData GetRouteData(HttpContextBase httpContext)
{
var url = httpContext.Request.Headers["HOST"];
var subDomain = Helpers.Helpers.GetSubDomain(url);
if (subDomain==null)
return null;
var routeData = new RouteData(this, new MvcRouteHandler());
switch (subDomain)
{
case "mycompany":
routeData.Values.Add("controller", "SubDomain");
routeData.Values.Add("action", "Index");
break;
default:
routeData.Values.Add("controller", "Home");
routeData.Values.Add("action", "Index");
break;
}
return routeData;
}
public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
return null;
}
}
Так что теперь я могу просматривать www.mycompanyname.mydomain.com и правильный контроллерзагружен.
У меня сейчас 2 проблемы.
Если я захожу на сайт www.mistake.mydomain.com, я получаю ошибку 502.Что я могу сделать в IIS для перенаправления на www.mydomain.com, если www.mistake.mydomain.com не найден?
После того, как я перешел на www.mycompanyname.mydomain.com, все ссылки внутримое главное меню теперь указывает, например, на www.mycompanyname.mydomain.com/contactus, что неправильно, как я могу убедиться, что пункты меню не используют субдомен в URL?