[学习]静态与伪静态

页面静态化的好处:

1. 减轻数据库的压力,直接访问生成的静态页面,不用再去访问数据库

2. 有利于SEO优化,静态页面比动态页面权重高

3. 动态页面需要传参,传参就会有被攻击的风险

页面静态化的坏处:

1. 生成静态页面的过程对CPU和硬盘资源消耗比较大

2. 生成的静态页面多了,目录很难安排,放一个目录文件多了会影响性能,放子目录深了又不利于SEO

什么时候生成静态:

对于数据会经常更新的页面不适合生成静态,如博客,论坛等

内容变化小访问量大的页面需要生成静态化,如新闻,读书,在线小说等

静态的使用到的知识点:

缓冲

ob_start(); //Turn on output buffering

ob_get_contents(); //Return the contents of the output buffer

ob_get_clean(); //Get current buffer contents and delete current output buffer

ob_end_clean(); //Clean (erase) the output buffer and turn off output buffering

文件操作

file_put_contents($filename, $data);     

静态的实现步骤:

1. 修改 php.ini 选项:output_buffering = off

2. 在需要生成静态页面加入代码:

ob_start();        //开启缓冲

……

$info = ob_get_contents();        //把缓冲的内容输入并且保存到$info里

file_put_contents($staticfilename, $info)        //把缓冲内容塞到静态文件里

注意:以上虽然生成了静态页面,但静态页面的地址是?什么时候能使用生成的静态页面?

在动态页面判断是否有已经生成的静态文件,如果有就跳转到静态页面,如果无就从开启缓冲,从数据库里取出信息,生成静态文件并把静态文件的地址放进数据库,列表页就可以使用数据库里的地址。

 

伪静态用到知识点:正则替换

由于伪静态需要用正则来分析,正则比较耗服务器资源

伪静态步骤:

1. 修改apache httpd.conf 文件:

开启mod_rewrite模块 -> AllowOverride 后都改成 All 

2. 在服务器端写 . htaccess 文件

    <IfModele mod_rewrite.c>

    RewriteEngine on

    RewriteRule /规则/   forum-(\d+) forum.php?id=$1    //这里要留意.htaccess文件放的位置,跟重写的地址相对应

    <IfModele>


你可能感兴趣的:(静态,伪静态)