什么是二级域名,大家恐怕都很清楚,举个例子,比如www.fenlei123.cn一般当作一级域名,或者主域名,那么http://beijing.fenlei123.cn和http://shanghai.fenlei123.cn就是二级域名了。
二级域名的优势
实际上,对于搜索引擎来说,一般是把不同的二级域名当作不同的站点来看待的,也就是说在很大程度上可以把二级域名当作一个独立的站点来对待。所以,在搜索引擎的排序权重里,对于二级域名给与很高的权重。更重要的一点是,大部分搜索引擎,特别是百度,基本会无条件收录二级域名。也就是说,你的二级域名虽然缺少外链,他也可以给你收录,而对于普通的网页,收录起来就不那么痛快了。
二级域名的解析方法
基本上所有的dns都支持泛域名解析,所以,我们只要把泛域名解析到一个ip上就可以了。不过,这样有个问题,就是一般情况下,一个服务器只允许一个空主机头,如果你的服务器已经有别的域名占用了这个空主机头,就需要在你的这个网站的主机头里写上所有可能的二级域名。所以,我们推荐使用独立服务器来实现泛二级域名。
二级域名的asp.net重定向实现
对于网站程序来说,二级域名的实现基本上都是通过重定向来实现的,对于使用asp.net的系统,我们使用下面的方式来实现(asp和其他的语言也都非常类似):
在global.asax文件里,截获Application_BeginRequest事件,重写如下:
string url = Request.Url.AbsoluteUri;
string strMatchDomain = @"[url=http://(w{3}\.)?([^\.]*)[\.]*fenlei123\.cn]http://(w{3}\.)?([^\.]*)[\.]*fenlei123\.cn[/url]";
string newUrl = "";
string strDomain = Split2Info(url, strMatchDomain);
if (strDomain != null && strDomain != "")
{
if (url.ToLower().EndsWith(@"default.aspx"))
{
if(strDomain != "all")
{
newUrl = string.Format("[url=file://\\ParterSite.aspx?code={0]\\ParterSite.aspx?code={0[/url]}", strDomain);
this.Context.RewritePath(newUrl);
}
}
给大家解释一下这段代码:
假如我们请求了这样一个地址:http://qingdao.fenlei123.cn,经过Split2Info()方法使用正则表达式处理后,会得到fenlei123.cn前面的qingdao,也就是说,我们使用正则表达式得到了某个城市的名称.然后我们判断这个url是否是default.aspx结尾的,因为所有的二级域名都是以default.aspx结尾的(针对这个网站),然后把这个url重定向到http://www.fenlei123.cn/partersite.aspx?code=qingdao,也就是说这个就是最终真正要执行的网页。
这样,我们通过泛解析和网页重形象就实现了泛二级域名,当然也可以通过别的方式实现,比如iis级别的dll重定向等。
分类信息网鹤舞白沙原创,转帖请标明出处。