在asp.net中创建动态子域

本文关键字:动态 创建 asp net | 更新日期: 2023-09-27 18:00:25

我需要以

如果我的请求是abc.domain.com,那么应该像一样处理请求

domain.com/default.aspx?cid=abc

例如,如果我给.domain.com,请求应该假定为domain.com/default.aspx?cid=

这不是强制性的,我需要给abc单独的子域可以是任何。。但是我的请求应该被处理,假设它是querystring值。

我的域位于共享主机中。。。

有人能照亮这个吗。。

在asp.net中创建动态子域

必须在DNS服务器和IIS上创建和配置子域。

在您将网站设置为接受该子域后,您可以直接使用RewritePath将子域映射到具有不同参数的特定文件。

Application_BeginRequest开始,您检查并找到子域,并将路径重写为:

protected void Application_BeginRequest(Object sender, EventArgs e)
{   
    var SubDomain = GetSubDomain(HttpContext.Current.Request.Host);
    // this is a simple example, you can place your variables base on subdomain
    if(!String.IsNullOrEmpty(SubDomain))
       RewritePath(HttpContext.Current.Request.Path + SubDomain + "/", false);  
}
// 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检索子域