PHP网站实现真静态文件生成及伪静态访问代码实例
作者:qyjz | 时间:2020-03-17 14:39:28

巅云建站系统,最近更新了不少实用功能。包括文章智能采集+全站真静态打包+城市分站+智能小程序+非法词过滤+H5自适应+智能链词等功能

看似简单的几个功能可谓开发团队想破了脑筋。

我们知道一套系统从头到尾都是周密计算,多功能融合才不会出问题,然而巅云最初可没考虑到全站静态化生成,但随着用户量增加,真静态就是不错的绊缓解服务器压力的方案,前不久还真有用户需求要增加真静态功能,支持用户下载静态包到自己空间上,我们系统做为远程后台。


我们知道伪静态是很简单的,配置伪静态规则,所有页面按规则设置链接即可示例:


RewriteEngine on

RewriteRule index.html$ index.php [NC]
RewriteRule p([0-9]{1,})\.html$ index.php?page_id=$1 [NC]
RewriteRule n([0-9]{1,})_([0-9]{1,})\.html$ index.php?page_id=$1&NewsID=$2 [NC]
RewriteRule nf([0-9]{1,})_([0-9]{1,})\.html$ index.php?page_id=$1&news_fl=$2 [NC]
RewriteRule pr([0-9]{1,})_([0-9]{1,})\.html$ index.php?page_id=$1&proID=$2 [NC]
RewriteRule pf([0-9]{1,})_([0-9]{1,})\.html$ index.php?page_id=$1&pro_fl=$2 [NC]


页面效果:

http://www.hostcom.cn/index.html 首页可以不加index.html


http://www.hostcom.cn/p6950.html


1、最初的思路,生成静态再通过PHP压强打包。

如果所有模块和页面都要实现真静态。就显得非常难了,多用户系统都采用同一套程序,无法实现。有人说可以先为不同用户的网站PHP生成静态文件到不同目录,再includ过来不就行了,然而这叫真静态吗?加上伪静态不过还是可以降低压力。

2、写PHP动态包,让用户上传动态包到自己空间。

当用户访问动态包时生成远程抓取CURL并写入静态。这样就完美解决了问题。第一次访问后,第二次就非常用快了,访问直接的静态文件了。当然还是得配合静态规则,如果有真实HTML文件则不经过PHP文件。

思路代码:

if(!file_exists($pagepath) ){

//不存在静态HTML则生成
  $txthtml = my_file_get_contents($url.'/'.$pagepath);
  
  @file_put_contents($pagepath,replaceimg($txthtml,$url));
//直接输出CURL结果。
  echo $txthtml;
}else{
//否则包含过来,一般不会执行到这里,静态规则如果有HTML文件直接访问了。
include($pagepath);
}

最终应用网址后访问速度确实提升了不了示例网站:

http://www.edu2020.cn

http://edu.yinxi.net


以上是PHP网站实现真静态文件生成及伪静态访问代码实例思路,希望对开发者有用。


顺便打下小广告:


巅云建站系统采用PHP+Smart模板引擎技术,轻巧设计、运行快,更SEO营销为建站宗旨,为企业网站制作助力!巅云将常用网站功能如:文章,产品,图文,图片轮换等多种功能以模块化的方式,自由拼凑即一键生成网页。巅云平台版独创多用户共享程序机制,相当一个普通小型门户网站的资源消耗即可承载上千个客户网站,时至今日已成功的为全国上百家网络公司提供自助建站平台搭建服务。


多站合一:集PC端、移动手机端、微信公众号、小程序。

拖拽排版:全程所见即所得拖拽拼图式设计,简单明了!

平台功能:开续网站站,域名查询接口,模板可以视化设计,助力开展独特品牌建站业务。

SEO功能:智能采集文章入库,分站系统,静态打包技术,让你的建站平台更多卖点优势。

售后无忧:免费安装调式,全程教会你使用,一对一售后服务,BUG无偿修复


创业项目介绍:http://www.yinxi.net/chuangyexiangmu/


文章内容