设为首页 收藏本站
查看: 1130|回复: 0

[经验分享] PHP实现伪静态

[复制链接]

尚未签到

发表于 2018-12-23 08:15:19 | 显示全部楼层 |阅读模式
  /*******************
  
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.qqcat.com/art/2/2190.html  php 友好URL的实现(吐血推荐)http://www.iyunv.net/article/16076.htm
  PHP实现伪静态化页面的具体实现方式http://developer.运维网.com/art/200911/164500.htm
  PHP伪静态与防注入http://blog.sina.com.cn/s/blog_4a657b6b0100gdnk.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。如图:
  


DSC0000.jpg
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来实现静态化比较麻烦。
  

  

  

  如果出现下面这样,说明你没配置好。
  

DSC0001.jpg

  
如果出现下面这样,说明你配置好了,只是rewrite规则写的不对,检查下好了。

DSC0002.jpg
  
如果出现下面,恭喜你。
  

DSC0003.jpg

  

DSC0004.jpg

  转自:http://yxmhero1989.blog.163.com/blog/static/1121579562011621423609/



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-654626-1-1.html 上篇帖子: Des加密算法的PHP实现 下篇帖子: Ubuntu Server 11.10 安装 Hiphop-php
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表