做SEO的朋友现在都知道了,URL静态化、URL伪静态、URL重写对SEO的重要性,搜索引擎喜欢静态的网站页面。今天我们来详细分析一下URL静态化、URL伪静态、URL重写这三者的区别。

      URL静态化。URL静态化 就是在你的网站服务器上现实存在的HTML页面,每个HTML页面对应着你网站上的一个URL。常见的可以生成URL静态化页面的网站开源程序有DEDECMS和其它一些CMS内容管理系统,WordPress在安装插件后也可以实现URL静态化。URL静态化和伪静态不同的地方就是URL静态化需要生成HTML文件,如果文件太多生成一次可能需要很长的时间,这一点不太方便。

      URL伪静态。URL伪态是最常见的网页存在形式,URL伪静态看起来和URL静态化完全一样,但实际上URL对应的文件是不存在的,是用技术手段实现的。伪静态的优点很多,比如不生成现实的HTML文件,就不会占用网站空间,管理方便,维护方便,和URL静态化一样有利于SEO。

      URL重写。URL重写技术就是我们常见的Rewrite技术,属于URL伪静态技术中的一种,现在是被广泛应用于各种系统环境,比如目前用得最多的LINUX 系统PHP环境,还有Asp.net环境,都是通过编辑配置文件规则实现的,例如我们常用的在LINUX系统PHP环境下的301重定向,就是通过Rewrite技术实现的。

      做SEO的朋友们一定要懂得URL静态化和URL伪静态的设置,这是做SEO站的基本要求。

 

 

 

页面静态化

 

  优点:降低数据库、web服务器压力,访问速度比较快; 同时,让搜索引擎搜录该链接的几率大,有助于seo

 

  思路:将"newsDetail.aspx?id=101"动态的生成的网页,下载到自定的文件夹,然后重新命名:20120319/101.htm。这样用户在访问的时候,就直接访问101.htm,静态页的好处这时就体现了。

 

  示例代码:

 

//文章编号id




        string  newPath = id + ".htm" ;
             string  localPath = HttpContext.Current.Server.MapPath( "~/20120319/"  + newPath); //HostingEnvironment.MapPath();
             //创建文件夹
               Directory.CreateDirectory(Path.GetDirectoryName(localPath));
             WebClient wc = new  WebClient();
             wc.Encoding = Encoding.UTF8;
             //通过WebClient向服务器发Get请求,把服务器返回的html内容保存到磁盘上。以后用户直接请求html文件请求。
               wc.DownloadFile( "http://localhost:7930/newsDetail.aspx?id="  + art.id, localPath);
————————————————
版权声明:本文为CSDN博主「lishuai05251986」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lishuai05251986/article/details/84820442



 

   页面的a标签就可以这么写:<a href='20120319/<%#Eval("id") %>.htm'><%#Eval("title")%></a>

 

静态页注意几个问题:

 

  1.页面编码问题:需要保存的页面指明编码方式(<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />),

 

   WebClient下载网页时,也要注意编码问题。

 

  2.路径: 图片、js、css等都用绝对路径

 

      3.页面上不要使用服务器控件,都用ajax处理

 

Url重写

 

  页面静态化和URL重写目的不一样,URL重写和页面静态化都可以SEO,

 

  但是URL重写SEO的开发难度小,页面静态化除了SEO之外还能大大降低服务器的压力。只有经常被访问的、很少变化的内容做成静态化。

 

  示例代码

 


 protected  void  Application_BeginRequest( object  sender, EventArgs e)
        {


 string  url = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath; //获得用户要访问的资源。这个属性获得的是虚拟路径
       //判断用户访问的是否是/Art/newsDetail-101.aspx格式
       Match match = Regex.Match(url, @"~/Art/newsDetail-(\d+)\.aspx" );
     if  (match.Success)
     {
         string  id = match.Groups[1].Value;
         //把客户端请求发给内部的其他页面
           HttpContext.Current.RewritePath( "~/Art/newsDetail.aspx?id="  + id);
     }
}



 

 

总结一下

1.URL重写和页面真正的静态化,都可以做SEO优化,他们对于搜索引擎来说没有区别。

2.页面静态化还有一个主要的原因就是减小服务器和数据库压力,静态化一般是不变化的信息,比如新闻等等,所以一个系统可以静态化的就制作成静态页面,如果和服务器交互多的页面,那么还保持原来的动态页面,不过通过URL重写充能,做SEO。

3.还有一些和服务器交互不多的页面,比如用户信息页面,一般都是每个用户生成一个静态信息页面,每次修改用户信息的时候,动态的生成静态页面,然后替换原来的静态页面。

4.生成静态页也有很多问题,不说寻址和映射问题,如果静态页面太多的话,存储和管理也是问题。所以动态页面和静态页面遇到具体问题要具体分析,选择最优方案。

5.如果只想做SEO的话,那完全可以只做URL重写。

6.另外提一下,.net中有页面缓存的技术,这个服务器压力和生成静态页面有些相似,具体技术大家自己查资料吧(其实页面缓存是静态页的一种折中的办法,不过它局限在存储在内存中,会占用内存)。