RewriteRule news-id(\d+)\.html$ news.php?id=$1 这是一条具体的rewrite规则,服务器根据所写的规则逐条匹配,如果能够找到一条匹配的规则,则按此规则重定向到指定的页面并按相应的正则式提取参数和传递参数,如果查155 找所有的规则之后仍找不到匹配的规则,则认定它是一个普通页面,从虚拟目录下面查找这个页面而不进行重定向。 rewrite规则采用的是正则表达式匹配,'\d'是表示一个数字,'+'表示出现至少一次,由于'.'在正则表达式中表示任何字符,所以需要使用'\'转义以表示其本来的含义,因此 news-id(\d+)\.html表示匹配以news-id开头且后面跟着一串数字的页面,例如160 news-id1234.html便会匹配这条规则,然后重定向到news.php这个页面,而且把配置的数字传到id这个参数中,上例便会重定向到news.php?id=1234这样一个新url,在news.php页面里就可以通过 $_GET['id']取得参数,虽然客户端感觉是访问的一个静态文件,然后实质却是访问的一个动态文件,爬虫也无法觉查到这一点,所以会一直抓取网站内容。 下面采用SEO综合查询工具http://seo.chinaz.com进行对两个一样的网站进行SEO测165 试,第一个网站内有600个使用PHP制作的页面,表1是展示的这个没有采用静态化的网站测试后得出的分数,第二个网站使用rewrite机制对这600个页面进行静态化,表2展示的是采用了基于rewrite机制的网站测试后的得分。 表1 网站在未采用静态化前SEO 测试结果 170 搜索引擎 百度 谷歌 SOSO 搜狗 收录 20 39 15 18 反链 24 33 10 20 表2 网站在采用静态化后SEO测试结果 搜索引擎 百度 谷歌 SOSO 搜狗 收录 200 458 260 321 反链 254 378 221 298 对比两个表的数据不难发现采用了基于rewrite机制的网址在不同的搜索引擎中的收录和反链均比没有静态化的网址高出10倍,粗鲁估算一下谷歌的收录最全,基本上收录了全部的网页。因为各搜索引擎的爬虫均有这么一个机制,当爬取到一个静态页面后均会分析其175 中的url连接,抓取页面中的静态页面的url放入抓取池,而遇到php,jsp,asp之类的页面时,爬虫认为这是一个动态页面,由于动态页面的内容是随时有可能变的,不适合再继续抓取,所以不会放入抓取池再次抓取。 3 结论 基于PHP缓存的真静态一般适合用于访问量高,信息改动不多的请求,例如京东A商180 品的网页,不仅可以实现高并发性也可以实现SEO优化,但是这对后台的开发提出了较高的要求,它要求开发人员要考虑到缓存的同步、删除、更新等各方面的工作[5]。本文给出了两种方案,各有优劣,就结合实际需要选择相应的策略。 基于Apache rewrite的伪静态一般应用在SEO优化中,它对于高并发性的访问并不能产生优化,反而会产生rewrite的时间消耗,从而导致服务器性能的下降[6]。但是这样可以方185 便百度、谷歌的爬虫爬取网站的信息,提高网站的知名度。对于像京东这样的网站或其它想推广的网站来说,使用此类方法来静态化自己的网站是非常合适的。 [参考文献] (References) [1] 朱炎炎,谈谈网站静态化,程序员, 2008.10:96-98 190 [2] 冯兴利,基于php+mysql的web系统安全防范及全站静态化,现在电子技术,2012,35(8):25-27 [3] 何珍祥,贾筱景,虚拟机环境中域名服务和apache服务器的构建,现代计算机,2010.01 :139-141 [4] 沈阳,基于httphandler的页面静态化,数字技术与应用 2012(1):50-51 [5] 霍珊,页面静态化技术的研究,消费导刊,2009.11:210 [6] 苏韶生 1,罗平 2,PHP技术的页面缓存的实现,计算机时代 2005,10 :55-56 195 学术论文网Tag:代写硕士论文 代写论文 代写代发论文 代发论文 |