.NET实现二级域名的方法

3/11/2013 9:15:40 PM

现在的博客用户注册完成后自动赠送他二级域名的功能。
经过资料分析,实现过程基本如下:

--------------------------------------------------------------------------------

总体思想设计图示:

注意,要保证你的域名泛解析,并且在主机上绑定主域名,如:绑定我的域名为cn-web.com。
原理很简单,用泛解析后,test000.cn-web.com(或者其它的子域名)都指向了我的主机ip,然后在主机默认处理页面里分析地址进行转向。(如我是在default.aspx页面里处理的)
代码实现:
我这里用的是.net2.0(c#)。
getUrl   =   Request.Url.AbsoluteUri.ToLower();         //获取URL(包含后面的网页)  

//判断URL是否为空 
   if(getUrl != "")  
   {  
    string at = getUrl.Replace("http://",   "");       //将URL中的"http://"去掉  www.cn-web.com/index.aspx
    userUrl = at;//www.cn-web.com/index.aspx
    userUrl = userUrl.Replace("www.",   "");     //将URL中的"www."去掉   cn-web.com/index.aspx
    userUrl = userUrl.Split('.')[0];   //取字符串第一个点之前的部分 cn-web
    uurl = at.Split('/')[0];//读取站点信息,www.cn-web.com
    string mosite = GetWebConfig.getDomain.Replace("http://*.","").Replace("/","");//cn-web.com,//这里是从我的配置文件里获取信息(下面会提到部分配置文件代码)
    if(at.IndexOf(GetWebConfig.SiteIP)!=-1)//这里是从我的配置文件里获取信息(下面会提到部分配置文件代码)

    {
     this.Response.Redirect("user/in.aspx");//如果是IP信息,直接用ip登陆
    }
    else//用的是域名登陆
    {
   
     if(at.IndexOf("www.")!=-1 || at.IndexOf(mosite)==-1)//处理一级域名
     {
      //处理用户站点信息
      if(new BLL.ALD_MSite().Exists(uurl))
      {
       //这里代码省去,根据你的实际情况由域名信息获取用户信息进行转向
      }
      else
      {
       //一级域名不存在的处理!
      }

     }
            
    }  

web.config页面:
<add key="Site" value="http://*.cn-web.com/" />
<add key="SiteIP" value="212.12.23.2" />
 
以上代码只是截取了核心实现代码,已经能全面说明问题了。