做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中有页面缓存的技术,这个服务器压力和生成静态页面有些相似,具体技术大家自己查资料吧(其实页面缓存是静态页的一种折中的办法,不过它局限在存储在内存中,会占用内存)。