PHP实现页面静态化、纯静态化及伪静态化
来源:藏色散人
发布时间:2020-05-18 10:46:19
阅读量:1769
概念
PHP静态化分为:纯静态化 和 伪静态化;
纯静态化又分为:局部静态化 和 完全静态化
纯静态化:是把PHP生成的动态页面保存成静态的html文件,用户访问该静态页面,而不是用户每一次访问都重新生成一张相同的网页,优点就是减小服务器开销,
局部静态化:是生成的静态文件中,有局部的数据还是通过ajax技术动态获取的;
完全静态化:即不存在动态获取数据的情况,所以内容都来自静态的html页面
伪静态化:Apache服务器rewrite配置
纯静态化的实现
利用php内置的ob函数实现页面的静态化,大概步骤如下:
1 2 3 4 5 6 | <?php ob_start();
?>
<p>我是要生成的静态内容,也可以在该处链接数据库生成动态内容于此</p>
<?php
file_put_contents ( 'index.html' , ob_get_clean() );
?>
|
触发系统生成纯静态化页面
方法:页面添加缓存时间;手动触发
页面添加缓存时间
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php
$file_name = 'index.html' ;
if ( file_exists ( $file_name ) && filemtime ( $file_name ) - time() < 10 ){
require_once ( $file_name );
} else {
ob_start( );
?>
<p>我是要生成的静态内容</p>
<?php
file_put_contents ( $file_name , ob_get_contents() )
}
|
如果后台数据存在更细,定时刷新不能及时更改静态页面,怎么办?所有引入了手动触发的功能
Linux下的crontab定时扫描程序
1 | */5****php/data/ static /index.php
|
PHP伪静态
Apache服务器rewrite配置
在httpd.conf文件中,找到
#注释:去掉前边的" # "开启rewrite服务,重启服务器生效
#LoadModule rewrite_module modules/mod_rewrite.so
#注释:http-vhosts.conf文件是虚拟域名配置的文件,开启改文件可以配置虚拟域名,一般默认是开启的
#Include conf/extra/httpd-vhosts.conf
rewrite伪静态配置
1 2 3 4 5 6 7 8 9 10 11 12 | <VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common
#配置规则如下所示
RewriteEngine on
RewriteRule ^/vidio/([0-9]*).html$ /vidio.php?id= $1
</VirtualHost>
|