1

我想将 abc.com/yyy 重定向到 xxx.abc.com,我可以知道如何在域管理器中实现这一点吗?

实际上这是一个托管在 Azure 中的 .net MVC 项目,我可以知道这是在域管理器中完成还是?

谢谢。

4

2 回答 2

2

为了完成这项工作,您需要做一些事情:

  1. 为您的 abc.com 域配置CNAME , xxx.abc.com指向yourapplication.cloudapp.net(您不在 Azure 门户中执行此操作,这是您在管理域设置的网站上执行的操作) .
  2. 将/yyy子目录配置为 Web 角色中的附加站点,如下所述:如何为多个网站配置 Web 角色。这将允许您将主机头 ( xxx.abc.com ) 映射到子目录 ( /yyy.com )。完成此操作后,您的子目录也可以通过xxx.abc.com 访问
  3. 如果您还想设置从abc.com/yyyxxx.abc.com的重定向重定向,则需要设置一个 URL 重写,并将操作类型设置为重定向如此处所述)。
于 2012-12-01T17:49:20.480 回答
0

这也可以通过 global.asax 以编程方式完成。我用它来重定向

http://www.mysite.com

http://mysite.com

这是执行此操作的代码。

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到您想要的任何路径。

于 2013-08-19T20:39:24.090 回答