1.页面静态化
--在静态页面还是会有一部分内容会发送变动,可以使用ajax动态加载这些需要变动的数据
----1.真静态
----1)使用ob缓存获取页面输出的内容,进行静态页面生成
缓存区:ob缓存区=》程序缓存区=》浏览器缓存区
ob_start() 开启ob缓存
ob_clean() 清除缓存区 之前输出的数据,都会被清空
ob_get_contents() 获取ob缓存的内容
file_put_contents('url',ob_get_contents);
ob_end_flush();输出商品详情
ob缓存一般被用到两个地方:
1.页面静态化,可以把页面将要输出的信息,全部捕获
2.验证码(图片)header头之前如果有输出,会乱码。ob_clean去消除之前的输出
----2)可以抓取动态网页内容,再保存成为静态页面
可以使用curl或者file_get_contents 请求动态页面,把字符串信息,通过file_put_contens保存成为静态页面。如果你的数据还是定时要发生改变的,你可以使用linux下的crontab定时任务去执行。
----3)在添加动态数据的时候,就把对应的静态页面生成。
----4) ThinkPHP下可以使用fetch抓取数据并保存
----2.伪静态
第1步:
到apache的配置文件中,开启一个模块——url重写模块:rewrite_module
第2步:
到虚拟主机配置文件中要启用伪静态的站点设置里设置如下:
<VirtualHost *:80>
ServerName www.php50.com
DocumentRoot "H:\***"
<Directory "H:\***">
#目录选项
Options Indexes FollowSymLinks #主要
AllowOverride All #主要
#设定访问权限
Order Deny,Allow
Allow from all
#设定默认网页
DirectoryIndex index.php
</Directory>
</VirtualHost>
第3步:
到站点的根木录,创建“分布式配置文件(.htaccess),并进行配置如下:
#配置仿静态网站
<IfModule rewrite_module>
#启动匹配引擎
rewriteengine on
#重写规则 静态 动态
rewriterule index.html index.php
rewriterule cid-(\d+).html index.php?cid=$1
rewriterule Detail-(\d+).html index.php?a=Detail&id=$1
rewriterule Register.html index.php?p=Home&c=User&a=Register
rewriterule Login.html index.php?p=Home&c=User&a=Login
rewriterule Logout.html index.php?p=Home&c=User&a=Logout
rewriterule check.html index.php?p=Home&c=User&a=check
rewriterule RegSave.html index.php?p=Home&c=User&a=RegSave
</IfModule>
#ThinkPHP下的伪静态配置文件 -d为文件目录 -f为文件
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
</IfModule>
详性请见 base/apache php mydql config/分布式配置.php
#这是站点的分布式配置文件
<IfModule rewrite_module>
#开启url重写引擎
ReWriteEngine On
#下面,就是一行一行进行“动态地址”和“静态地址”的匹配设置了:
#形式:RewriteRule 静态地址 动态地址
#RewriteRule day7/blog-v13/index.html day7/blog-v13/index.php
#RewriteRule page1-18.html page1.php?id=18
#......继续这样写。
#RewriteRule day7/blog-v13/cid-(\d+).html day7/blog-v13/index.php?cid=$1
#RewriteRule day7/blog-v13/Detail-(\d+).html day7/blog-v13/index.php?a=Detail&id=$1
#RewriteRule register.html day7/blog-v13/index.php?c=User&a=Register
</IfModule>
标签:index,静态,ob,html,php,方法,页面
From: https://www.cnblogs.com/fuqian/p/17610977.html