google优化(SEO)基于动态页面的静态页面实现

同学说,他的网站被google收录的很少,我研究了一下,发现那个网站基本都是动态页面+参数的方式来实现的,这种网站当然不被google看好,于是给他优化了一下,改了一些代码,通过虚拟的静态网页的方式来进行信息的显示,下面是优化的理论和一些代码:

基于动态页面的静态页面实现

中国二手市场网站http://www.2shoushichang.com/ 小胖著 转贴标明出处

我们大家都知道,搜索引擎对于静态页面有异乎寻常的热爱,特别是google,更是如此;
而我们通常所作的网站中,大部分都是动态的,一般通过参数的方式来进行动态页面的显示的,那么我们能不能通过一种简单的办法来达到生成静态网页的目的呢?特别是对于虚拟主机的用户,没有太多的空间,又不能对服务器配置进行更改,这个难度就比较大了.
下面,我已亲身经历,来详细描述一下实现的原理和具体做法:
我们已中国二手市场为例来说明.
中国二手市场http://www.2shoushichang.com/也是一个专著于二手信息的网站,从大的方面来说也算是分类信息网站,一开始也是采用动态网页的模式,通过参数的方式来实现二手信息的展示的.
比如,如果我们想查看电脑分类的所有信息,需要下面的连接http://www.2shoushichang.com/BigTypeList.aspx?id=100,如果想看更细的笔记本的分类需要打开下面的连接:http://www.2shoushichang.com/MidtypeList.aspx?id=100102,同样,如果想查看手机/mp3等的信息,需要在参数id后面跟上不同的类别id.我想,在分类信息里面,这种形式至少要占到95%以上,别的信息类网站,大部分也是采用的这种方式.
但是,对于spliter来说,他们不理解参数的意思,一般一个分类只采集一页或几页,很少能全部采集的(好像baidu比较喜欢采集).设想一下如果我们按照另外一种方式来处理,比如,对于电脑分类,第一页我们可以这种来设计:http://www.2shoushichang.com/bigtype/s-100-all-1.aspx能不能更好呢.我对于这个地址给大家详细解释一下:
其中,bigtype表示分类,表示要对信息类别中的大类进行处理,后面的s表示出售信息,100表示信息类别的id(这里表示电脑),all表示所有的区域,1表示第一页,这样,这一个地址就表示了
http://www.2shoushichang.com/BigTypeList.aspx?id=100&page=1这样一个地址.
同样http://www.2shoushichang.com/Midtype/s-101100-qingdao-3.aspx表示的是查询青岛地区手机类别的第三页,它取代的地址是http://www.2shoushichang.com/Mid ... p;type=s&Page=3
通过这种方式,我们就可以把所有查询都统一成固定地址的网页.
当然,对于显示信息的页,如http://www.2shoushichang.com/Product.aspx?id=10864,我们可以处理成这样http://www.2shoushichang.com/Product/10864.aspx这种方式.
这样,我们就可以把我们网站上几乎所有需要动态处理的地方,已静态网页的方式来实现了.

可能有人会说,这也太麻烦了,我需要建立多少网页啊,需要占用多少空间呀!!!
其实,不麻烦,不用额外占用任何空间,也不用真实的创建任何网页,你所有的程序几乎都不用动,只需要在Global.asax加上几行代码就行了.
不信,我们就继续阐述一下具体实现方法.
我们是通过捕获用户的请求,然后通过RewritePath来实现的:
这是我程序中的一段代码,它就负责把上面的那些请求转化为真正的页面请求,
我们是通过正则表达式来区分各种类别的请求的:
protected void Application_BeginRequest(Object sender, EventArgs e)
                {                                                                        
                        string url = Request.Url.AbsoluteUri ;
                        string strMatch = @"http://www/.2shoushichang/.com/([^/]+)/" ;
                        
                        string newUrl = "" ;
                        string strCmd = SplitInfo(url,strMatch) ;
                        if (strCmd != null)
                        {
                                switch(strCmd.ToLower())
                                {

                                        case "product":
                                                strMatch = @"/product/(/d+)/.aspx" ;
                                                string strProductId = SplitInfo(url,strMatch) ;
                                                
                                                if (strProductId != null)
                                                {
                                                        newUrl = string.Format("..//Product.aspx?id={0}",strProductId) ;
                                                        this.Context.RewritePath(newUrl) ;        
                                                }
                                                break ;
                                
                                        case "midtype"://s-100100-All-2.aspx
                                                strMatch = @"/midtype/(/S+-/d+-/S+-/d+)/.aspx" ;
                                                string strResult = SplitInfo(url,strMatch) ;
                                                
                                                if (strResult != null)
                                                {
                                                        string[] strParam = strResult.Split('-') ;//MidtypeList.aspx?id=100100&city=威海&type=s&Page=3
                                                        if (strParam.Length != 4)
                                                                break ;
                                                        string city = AppGlobal.GetCityNameByCode(strParam[2]) ;
                                                        newUrl = string.Format("..//MidtypeList.aspx?type={0}&id={1}&city={2}&page={3}",strParam[0],strParam[1],city,strParam[3]) ;
                                                        this.Context.RewritePath(newUrl) ;        
                                                }
                                                break ;                                       
                                        case "其它处理":
                                                break;
                                        default:
                                                break ;
                                }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值