abc.com/yyy を xxx.abc.com にリダイレクトしたいのですが、ドメイン マネージャでこれを行う方法を教えてください。
実際、これは Azure でホストされている .net MVC プロジェクトです。
ありがとう。
これを機能させるには、いくつかの作業を行う必要があります。
これは、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
このアクションが必要なパスに戻ることを確認してください。