3

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

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

我怎样才能做到这一点?

4

1 回答 1

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

类似的帖子:
如何将所有对特定域的请求重新映射到 ASP.NET 中的子目录
将网页请求重定向到默认子文件夹
如何在不硬编码其名称的情况下引用主域?
从 C# 中的 URL 检索子域

于 2012-12-25T13:34:57.760 回答