泛二级域名的优势和实现实例、泛域名解析下的精确域名优化

12 篇文章 0 订阅

什么是二级域名,大家恐怕都很清楚,举个例子,比如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重定向也就是说这个就是最终真正要执行的网页。
这样,我们通过泛解析和网页重形象就实现了泛二级域名,当然也可以通过别的方式实现,比如iis级别的dll重定向等。

===============================================================================

http://www.im286.com/thread-2152732-1-1.html

泛域名解析大家都明白,我也写过几篇文章介绍了泛域名解析的优势和具体操作方法,在这里再简单的讲一下,也就是说对于一个域名,比如www.2shouche.org,如果我们要实现泛域名解析,就把*.2shouche.org解析到你的服务器上,这样所有你的二级域名比如http://beijing.2shouche.org , http://shanghai.2shouche.org等都解析到了你的这台服务器上.具体怎么操作可以见那篇文章.(详细的请见http://www.im286.com/viewthread.php?tid=2027279)

现在要说的是另外一个问题,就是泛域名解析怎么实现精确优化.

比如,对于http://beijing.2shouche.org,我们关心的是让这个二级域名出现一些和北京二手车有关的信息,我们可以通过global.asax的request事件,捕获到请求,然后分析出它的的一部分,即beijing,然后控制页面出现和北京相关的内容.同样,对于上海,我们也是一样的,出现和上海二手车相关的内容.不过,这样有个限制,也就是说不管请求的二级域名是什么,最终都要重定向到同一个网页,这样我们就会受很多限制.那么有没有办法让每一个域名都指向不同的网页呢?答案是有的,操作起来也不是很麻烦,再给大家实例分析一个案例:

比如www.d1tv.cn是做网络电视的,他也实现了某种程度的泛域名解析,比如我们请求http://pps.d1tv.cn,http://shipin.d1tv.cn和请求http://dianying.d1tv.cn都会指向同一个网站处理程序,但是这几个界面差别很大,基本很难用一个统一的网页来处理和优化,现在就好了,我们可以建立一个子文件夹,比如叫myweb,里面分别放上pps.aspx,shipin.aspx,dianying.aspx当然,别的扩展名也一样,当对这些二级域名请求时,我们就捕获它的二级域名头部,然后重定向到这些网页,这样以来,就很容易对这些静态网页做优化,也就相当于对二级域名做优化.

这样以来,我们就实现了看似不可能的泛域名解析下的二级域名精确优化问题.

参考代码(别的语言的写法基本一样):

string strMatchDomain = @"http://(w{3}/.)?([^/.]*)[/.]*d1tv/.cn";

        string newUrl = "";

        string strDomain = Split2Info(url, strMatchDomain);

            if (strDomain != null && strDomain != "")

            {

                if (url.ToLower().EndsWith(@"default.aspx"))

                {

                    newUrl = string.Format("//myweb//{0}.aspx", strDomain);

                    this.Context.RewritePath(newUrl);

                }

            }

以后有别的心得和优化方法再和大家分享

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值