title:浅谈php实现伪静态
author:insun
blog:http://yxmhero1989.blog.163.com
reference:
php实现url伪静态化 http://blog.78999.org/php_sql_asp/php-rewrite.html
php 伪静态(url rewrite)apache配置http://hi.baidu.com/%b9%d6%ca%af/blog/item/2659b6af548923d57cd92ab9.html
三种实现php伪静态页面的方法:http://www.bkjia.com/kf/201108/100056.html
友好url的实现(吐血推荐)http://www.bkjia.com/kf/201006/49208.html
php实现伪静态化页面的具体实现方式 http://www.bkjia.com/kf/201108/100058.html
php伪静态与防注入 http://www.bkjia.com/article/201108/100059.html
php参数传递以及php获取url参数之后的较合理安排 http://hi.baidu.com/wd1314521/blog/item/3af604822f1938b70df4d2e3.html
php实现伪静态化页面的两种方法(包括两种url重写的方法 http://hi.baidu.com/newyorkmen/blog/item/f998131ae4121b0d34fa4167.html/cmtid/6becf7c0d5fd6d38e4dd3b08 php页面实现静态化讲解和详细代码 http://hi.baidu.com/newyorkmen/blog/item/f387e3b723dddac437d3ca66.html
*/
最近在某公司实习,用php爬虫抓取网站页面,存到数据库,然后自己写个网站调用数据库,然后进行seo,要求采集、远程资料本地化,伪静态,关键字优化,无死链无孤岛;做完以后就可以进入项目组了。
php实现伪静态实际是为了seo(search engine optimization搜索引擎优化),也就是说像google和百度之类的spider不喜欢动态的页面,所以你显示的时候就以.html或者目录之类的表现,其实在服务器端是php文件。也就是说搜索引擎不喜欢/page.php?id=4这样的页面,而是喜欢/4.html这样的页面,对其非常友好(有利于收录),当然你不会直接弄出n个html页面吧。
一。那么最简单的方法
apache+php下实现url重写(伪静态)
1。检查apache是否支持mod_rewrite
在apache的httpd.conf里面查找loadmodule rewrite_module modules/mod_rewrite.so,去掉其前面的#(如果有的话,也就是取消注释)linux下建议使用xampp安装包,里面的loadmodule基本都已经被取消注释了,所以一般不需要改动。
然后利用phpinfo()查看环境配置,是否支持mod_rewrite。如图:
2.在http.conf里面查找options followsymlinks,将后面的allowoverride none改成allowoverride all。 这个时候兵分两路,有http.conf权限的可以自己在http.conf后面添加url rewrite规则 如 rewriteengine on rewriterule ^(.*)/([0-9]{1,}).html$ $1/page.php?id=$2 第二路就只好在代码根目录建立.htaccess文件,这个文件建立比较简单,有3种方法,最简单的当然是建立1.htaccess然后记事本打开另存为.htaccess,另外就是cmd下rename和ftp软件修改。3.rewrite规则 看个例子就懂了 rewriteengine on rewriterule ^(.*)/([0-9]{1,}).html$ $1/page.php?id=$2 $是终止符,前面写个正则表达式,$1获取第一个子模式(小括号里面的东东),$2获取第二个子模式东东。 友情提示 ^是开头,不要忘记加了 如果有2个参数,也很简单,自行处理。 也就是说浏览器里面显示的如果是4.html(你的文件里面的链接写成.html的)的话,实际调用的是page.php?id=4,这样浏览器的输入栏都是html,达到了伪静态。 当然你改写不同正则,显示的url当然就不同了,随你喜欢的该。 遇见多行的话不要妄自加分号。如下才是对的: rewriteengine on rewriterule ^(.*)/([0-9]{1,}).html$ $1/page.php?id=$2 rewriterule ^(.*)/index.html$ $1/index.php rewriterule ^(.*)/wenzhang.html$ $1/wenzhang.php rewriterule ^(.*)/gushi.html$ $1/gushi.php rewriterule ^(.*)/sanwen.html$ $1/sanwen.php rewriterule ^(.*)/zawen.html$ $1/zawen.php rewriterule ^(.*)/shige.html$ $1/shige.php rewriterule ^(.*)/riji.html$ $1/riji.php rewriterule ^(.*)/xiaoshuo.html$ $1/xiaoshuo.php rewriterule ^(.*)/contact.html$ $1/contact.php综述就是网址重写引擎和指定一些重写规则.,尝试faking url suffix(伪造url后缀),看起来很静态化,提高了安全性和seo友好度。4.重启apache。 windows的httpd.conf很好找,在conf目录(我指的是你如果没用集成包的话) linux在opt/lampp/etc目录里面有httpd.conf(一般linux下推荐用xampp按照包,安装在opt目录) 同样进行上面工作restart一下就ok login as: root server refused our key root@xxxxx.com's password: last login: thu jul 21 14:26:26 2011 from 112.65.219.75 [root@xxxxx ~]# who root pts/0 2011-07-21 14:32 (112.65.219.75) [root@xxxxx ~]# /opt/lampp/lampp restart stopping xampp for linux 1.6.4... xampp: stopping apache with ssl... xampp: stopping mysql... xampp: stopping proftpd... xampp stopped. starting xampp for linux 1.6.4... xampp: starting apache with ssl (and php5)... xampp: starting mysql... xampp: starting proftpd... xampp for linux started. 稍等就行了。5.部分代码指导: rewriteengine on rewriterule ^(.*)/([0-9]{1,}).html$ $1/page.php?id=$2 rewriterule ^(.*)/index.html$ $1/index.php rewriterule ^(.*)/wenzhang.html$ $1/wenzhang.php rewriterule ^(.*)/gushi.html$ $1/gushi.php rewriterule ^(.*)/sanwen.html$ $1/sanwen.php rewriterule ^(.*)/zawen.html$ $1/zawen.php rewriterule ^(.*)/shige.html$ $1/shige.php rewriterule ^(.*)/riji.html$ $1/riji.php rewriterule ^(.*)/xiaoshuo.html$ $1/xiaoshuo.php rewriterule ^(.*)/contact.html$ $1/contact.php二,看到网上有2-3个方法,都是写个url_rewrite函数,然后require的,感觉不好就不推荐大家了,大家可以去搜索下。一般都是借助于apache,nginx,htaccess等,很少用php来实现url的静态化,用php来实现静态化比较麻烦。 如果出现下面这样,说明你没配置好。
如果出现下面这样,说明你配置好了,只是rewrite规则写的不对,检查下好了。
如果出现下面,恭喜你。
http://www.bkjia.com/phpjc/478695.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/478695.htmltecharticle/******************* title:浅谈php实现伪静态 author:insun blog:http://yxmhero1989.blog.163.com reference: php实现url伪静态化 http://blog.78999.org/php_sql_asp/php-re...
