搜索引擎优化之URL伪静态
优化里一个比较重要的部分一直想写,今天终于有空来详细写下了也就是本文的主题《搜索引擎优化之URL伪静态》,下面进入正题:搜索引擎优化之URL伪静态!
1,URL是什么相信不用再介绍了。
2,伪静态。什么叫伪静态?为什么会出现伪静态这个名字?既然有伪静态那么一定还存在真静态?对此问题,需要详细介绍下网站访问地址的变迁过程。
早期的网站因为没有动态语言(也就是今天主流的网站开发语言中的PHP/JSP/ASP/.Net等)的支持,全部要靠手工开发写HTML然后保存为扩展名为ab.html这种文件来供大家浏览,其访问地址可能是http://www.net.com/ab/ab.html,那么其效率和丰富度及多样性可以想象是很不行的。后来出现了动态语言,让这一切变为了历史,强大的动态语言结合数据库,让海量数据的大站和叫互性更强的多样性网站成为了现实,于是访问地址变成了http://www.net.com/ab/ab.php?id=100。
早期搜索引擎不是那么强健的时候,对于这种带?id=100的动态参数形式的页面收录不是那么的方便,于是早期有建议和说法是将http://www.net.com/ab/ab.php?id=100变成http://www.net.com/ab/100.html这种访问地址更有利于搜索抓取,这里的100.html就是将ab.php?id=100的数据生成的静态页面,在服务器硬盘上面是真实存在这个文件的。但随着数据量的增加,不是所有站都能完全生成静态网页而且这种生成静态页本身也有一些不足虽然生成的静态页对访问速度对搜索都有益。
于是一种URLRewrite(URL重写)也就是伪静态技术出现了,最典型的就是这种博客的地址,http://www.semyj.com/archives/1603就是使用了URL重写,这类地址对用户比较友好对搜索也是如此,而且因为他仅仅是地址重写不是真正的生成一个静态文件就规避掉了生成静态页面所带来的一些不足。
了解了URL的历史,那么我们来看伪静态到底是如何实现的呢?这里以IIS下的伪静态作为例子来说明下。
首先先去搜索一个名字叫ISAPI_Rewrite的软件压缩包(Apache里实现伪静态使用的是Apache‘s mod_Rewrite)。下载下来之后解压,比如我这里解压到D:\ISAPI_Rewrite3\,然后打开IIS,在IIS里的网站这个功能项上右键属性-》选择ISAPI筛选器-》添加,名字可以写ISAPI_rewrite,我这里写的是ISAPI_rewrite3,可执行文件选择的是D:\ISAPI_Rewrite3\ISAPI_Rewrite.dll,然后确定。
如下图所示,然后重启IIS,正常情况下应该在你的ISAPI筛选器里isapi项前面有个绿色箭头表示扩展安装正确,如果出现红色表示不正常工作,这是最好检查下你的isapi_rewrite目录的权限,加个everyone可读权限应该就可以解决问题了。
正常安装了isapi_rewrite扩展之后,在其所在目录下有个文件叫httpd.conf,用记事本打开。这个文件就是负责将http://www.semyj.com/archives/1603这种URL转换为形如http://www.semyj.com/archives/article.php?id=1603这种真实的访问的(这里仅仅是以此博客地址做例子说明,不代表其博客真的是这个访问地址),那么如何实现将http://www.semyj.com/archives/1603转换为http://www.semyj.com/archives/article.php?id=1603呢?
在httpd.conf里先建一行,这么写:
RewriteRule /archives/(\d+) /archives/article\.php\?id=$1
这里的规则分为三部分:
1,是开头的RewriteRule,这个是固定格式命令,直接以这个来开头然后写规则即可。
2,/archives/(\d+),这里的规则是从http://www.semyj.com/archives/1603里概括出来的,可以看到http://www.semyj.com/archives/1603里的文章规则都是http://域名/archives/数字,那么在写规则时就把完整的规则定义为/archives/(\d+),其中\d表示数字,+号表示最少要重复前面的数字一次。
3,/archives/article\.php\?id=$1,这里就是将前面的规则完整映射成真实的访问地址,\。 \?表示这里是普通字符,$1代表前面匹配出来的值,也就是数字1603。
很多站都存在将URL伪静态以实现对用户对搜索都友好的目的,可以自由控制目录深度,便于搜索抓取。
友情提醒:URL伪静态如果书写不正确可能导致出现无限空间的URL,导致搜索抓取出现异常,凭空多出来很多不存在的页面和地址,所以在做伪静态之后需要详细测试和及时跟踪,这一切的前提是你对正则表达式要了解。同时具体的isapi_rewrite的其他的命令使用方法和规则可以GOOGLE之。
|