子域名网址重定向到主网址

时间:2012-12-25 13:05:30

标签: asp.net c#-4.0 subdomain

我在asp.net中开发了一个网站并托管在Windows服务器上,但它没有为我提供子域名的通配符条目。我怎样才能写出我的网址 http://subdomainName.DomainName.org

我想将带有子域名的网址重定向到主域名;所以url“subdomainName.DomainName.org”应该重定向到“DomainName.org”,我的子域名不固定。子域名将分配给每个用户。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

subdomain是DNS服务器的一部分,与IIS设置一起使用。

因此,您无法从asp.net更改DNS设置,也无法更改IIS设置。当提供商授予您添加额外子域的权限时,实际上要做的是在DNS条目上创建新条目,然后将映射添加到IIS,以便子域查看您的站点。如果您的提供商没有为您提供添加子域的工具,那么您可以编辑DNS条目,然后就不能从asp.net添加它们。

如果您可以添加子域,那么您可以使用Application_BeginRequest或重写路径来操纵您要服务器的内容并在redirect的global.asax上显示。例如:

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;
}

类似帖子:
How to remap all the request to a specific domain to subdirectory in ASP.NET
Redirect Web Page Requests to a Default Sub Folder
How to refer to main domain without hard-coding its name?
Retrieve the subdomain from a URL in C#