1

abc.com/yyy を xxx.abc.com にリダイレクトしたいのですが、ドメイン マネージャでこれを行う方法を教えてください。

実際、これは Azure でホストされている .net MVC プロジェクトです。

ありがとう。

4

2 に答える 2

2

これを機能させるには、いくつかの作業を行う必要があります。

  1. yourapplication.cloudapp.netを指すabc.com ドメイン xxx.abc.com の CNAME を構成します(これはAzure portal では行いません。これは、ドメイン設定を管理する Web サイトで行うことです)。 .
  2. ここで説明されているように、/yyyサブディレクトリを Web ロールの追加サイトとして構成します:複数の Web サイト用に Web ロールを構成する方法. これにより、ホスト ヘッダー ( xxx.abc.com ) をサブ ディレクトリ ( /yyy.com ) にマップできます。これが完了すると、サブディレクトリはxxx.abc.comからも利用できるようになります
  3. abc.com/yyyからxxx.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 に答える