3

asp.net で Web サイトを開発し、サブドメイン名のワイルドカード エントリを提供しない Windows サーバーでホストしています。URL をhttp://subdomainName.DomainName.orgのように書くにはどうすればよい ですか?

サブドメインのある URL をメイン ドメインにリダイレクトしたい。したがって、URL「subdomainName.DomainName.org」は「DomainName.org」にリダイレクトする必要があります。ここで、サブドメイン名は固定されていません。サブドメインは各ユーザーに割り当てられます。

どうすればこれを達成できますか?

4

1 に答える 1

2

は DNS サーバーのsubdomain一部であり、IIS セットアップと連携して動作します。

そのため、DNS セットアップを asp.net から変更することも、IIS セットアップを変更することもできません。プロバイダーが追加のサブドメインを追加するアクセス権をユーザーに付与すると、実際には、DNS エントリに新しいエントリを作成し、それを IIS にマップして、サブドメインがサイトを参照できるようにします。プロバイダがサブドメインを追加するためのツールを提供していない場合、DNS エントリを編集することはできず、asp.net からそれらを追加することはできません。

サブドメインを追加できる場合は、パスを書き換えるかをApplication_BeginRequest使用して、サーバーに送信する内容を操作し、global.asax に表示することができredirectます。例えば:

protected void Application_BeginRequest(Object sender, EventArgs e)
{   
    var SubDomain = GetSubDomain(HttpContext.Current.Request.Url.Host);

    if(!String.IsNullOrEmpty(SubDomain) && SubDomain != "www")
    {
       Response.Redirect("www.yourdomain.com", true);
       return;
    }
}

// from : http://madskristensen.net/post/Retrieve-the-subdomain-from-a-URL-in-C.aspx
private static string GetSubDomain(Uri url)
{
  string host = url.Host;
  if (host.Split('.').Length > 1)
  {
    int index = host.IndexOf(".");
    return host.Substring(0, index);
  }

  return null;
}

同様の投稿:
ASP.NET で特定のドメインへのすべてのリクエストをサブディレクトリに再マッピングする方法
Web ページのリクエストを既定のサブ フォルダーにリダイレクト
する 名前をハードコーディングせずにメイン ドメインを参照する方法は?
C# で URL からサブドメインを取得する

于 2012-12-25T13:34:57.760 に答える