返回列表 回复 发帖

搜索引擎能不能识别伪静态

伪静态和静态的优劣最近争论似乎有些火热,一是有人提出静态不利于优化,二是Google不建议把动态网址重写成静态网址。抛开这些,单纯从技术上搜索引擎能不能识别出伪静态网页呢?

先说说什么是伪静态
客户端请求一个静态URL,而这个URL在服务器上并不存在,但服务器通过 url重写将请求按一定规则L转发到动态程序处理,然后将结果返回给客户端。这个过程是在服务器端完成的,对客户端来说,就是请求那个静态URL返回的结果,但实际那个文件又不存在,所以这个技术叫伪静态。

表面上看,客户端(包括搜索引擎)应该是无法识别的,因为转换都是在服务器上完成的,也的确是这样。但是,虽然可视的内容没有区别,可在返回头上,动态和静态的内容是不一样的。

SE通过http头部信息能确定是伪静态吗
的确,动态网页的会包含特有头信息,如:头X-Powered-By;静态页的特有的头部信息,如Last-Modified、ETag、Accept-Ranges、Content-Length。但是我们研究htpp标准协议的头部定义发现,有些是靠服务器设置的,有些可以被改写。
X-Powered-By:返回脚本名和版本信息,但可在php的配置文件中关闭 expose_php = Off
Last-Modified:文件最后修改时间,对于动态网页,通常不返回,因此我们可以在程序中加上,如header('Last-Modified: '.gmdate('D, d M Y 01:01:01',$time).' GMT')
ETag:是文件的唯一标识,可以配置为文件的索引节(INode),大小(Size)和最后修改时间(MTime)进行Hash后得到。我们可以设置 apache服务器,让对所有文件都不返回这个信息:FileETag none;或者给动态页也加上header("Etag: ".md5($time))
Accept-Ranges:为服务器可接受的请求资源范围,用于断点续传,动态程序可能不好实现,所以还是禁用吧 header("Accept-Ranges: none")
Content-Length:文件长度。对于动态文件,要选计算下自己输出的长度,再写入头header("Content-Length: ".$len )

经过“处心积虑”地修改,从技术上可以使动态网与静态网页的返回头一样,因此不能判断一个页面有没有经过伪静态处理。但是,SE从侧面分析应该该还是能够看出端倪的,如:很少有人会这样修改;URL规律上判断;从已有程序上推断。当然这样会不准,谁能保证我没生成真正的静态呢?

结语:其实对于静态和伪静态,在SEO上趋势应该是没有区别,从google这篇静态地址和动态地址可以看出一些态度。
交流QQ群:13519368
返回列表