我想将abc.com/yyy重定向到xxx.abc.com,我可以知道如何在域管理器中实现此目的吗?
实际上这是一个在Azure中托管的.net MVC项目,我可能知道这是在域管理器上完成的吗?
感谢。
答案 0 :(得分:2)
为了完成这项工作,您需要做一些事情:
答案 1 :(得分:0)
这也可以通过global.asax以编程方式完成。 我正在使用它从
重定向到
这是执行此操作的代码。
public class SubdomainRoute : RouteBase
{
public override RouteData GetRouteData(HttpContextBase httpContext)
{
RouteData returnValue = null;
var url = httpContext.Request.Headers["HOST"];
var index = url.IndexOf(".");
if (index < 0)
return returnValue;
string subDomain = url.Substring(0, index);
switch (subDomain.ToLowerInvariant())
{
case "www":
returnValue = new RouteData(this, new MvcRouteHandler());
returnValue.Values.Add("controller", "Redirect");
returnValue.Values.Add("action", "RedirectToRoot");
break;
/*case "live":
returnValue = new RouteData(this, new MvcRouteHandler());
returnValue.Values.Add("controller", "Database");
returnValue.Values.Add("action", "Index");
returnValue.Values.Add("liveMode", true); // set parameter to 'true';
break;*/
default: // not a supported domain, return null;
break;
}
return returnValue;
}
/// <summary>
/// required override
/// </summary>
/// <param name="requestContext"></param>
/// <param name="values"></param>
/// <returns></returns>
public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
return null;
}
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.Add(new SubdomainRoute());
}
当找到您要搜索的子域时,它将重定向到某个操作。确保此操作会将Redirect
返回到您想要的任何路径。