页面静态化的方法 伪静态

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>

posted on 2023-08-07 11:24  何苦->  阅读(16)  评论(0编辑  收藏  举报

导航