网站提速-伪静态(3)

发布时间:2019-07-05 10:15:41编辑:auto阅读(1896)

     伪静态 

    真静态只是完全生成了HTML 
    当然在你网站的流量没有那么大的时候。URL重写是最好的方法(如果访问量很大,还可以考虑负载均衡) 
    URL
    重写的方法有很多种,APACHE(rewrite)IISREWRITEPHP脚本直接处理。我们先讲解如何使用PHP脚本直接处理。查看php信息,会看到pathinfo信息,这样做php重写。

    <?php

    //案例

    $str="abck1234dddd9000";

    //找到4个连续的数

    preg_match('/(\d\d)(\d\d)/si',$str,$arr);//i不区分大小写echo

    echo "<pre>";

    print_r($arr);

    echo "</pre>";

    ?>


     

    配置apacherewrite来处理

    请求

    http://www.hsp.com/news-id3.html

    相当于

    http://www.hsp.com/news.php?id=3

    1/加载该模块:

    修改httpd.conf

    LoadModule rewrite_module modules/mod_rewrite.so

    2/配置虚拟主机

    C:\Windows\System32\Drivers\etc

     c hosts文件添加你的 ip  域名对应

    192.168.211.1  saisai.com

    192.168.211.1  www.saisai.com

     http.conf 文件中启用虚拟主机

    # Virtual hosts 启用虚拟主机

    Include conf/extra/httpd-vhosts.conf

    3/配置 httpd_vhosts.conf文件

     <Direcotry >段的配置,默认值,是在httpd.conf 的中配置,看根目录.

    <VirtualHost *:80>

        #ServerAdmin webmaster@dummy-host2.somenet.com

        #文档的根目录

        DocumentRoot "D:\AppServ\www\saisai"

        #域名

        ServerName saisai.com

        ErrorLog "logs/dummy-host2.somenet.com-error.log"

        #CustomLog "logs/dummy-host2.somenet.com-access.log" common

        #配置rewrite相关选项,

        <Directory "D:\AppServ\www\saisai">

        #拒绝所有的访问

        #Deny from all

        Allow from all

        #是否显示列表(在发布项目后一般是不启用,对于这个配置,针对DocumentRoothtdos外的目录生效)

        Options +indexes

        #是否启用rewrite

        Allowoverride  all

        </Directory>

    </VirtualHost>

    4.在目录下添加了一个 .htaccess  文件,这个文件时配置rewrite机制和规则

    windows下无法直接建立.htaccess文件,这时可以使用其他软件重命名即可。

    <IfModule rewrite_module>

    #写你的rewrite规则

    RewriteEngine On

    #news-id(\d+)\.html$ 是规则  news.php?id=$1 是转发的页面

    #正则 子表达式 捕获 反向引用

    #  "news-id33.html"

    可以配置多个规则,匹配的顺序是从上到下

    RewriteRule  news-id(\d+)\.html$   news.php?id=$1

    RewriteRule  abc-id(\d+)\.html$     error.php

    </IfModule>

     

    5/这个rewrite的规则也直接在 < Direcotry > 段直接配置

    <Directory "D:\AppServ\www\saisai">

        #拒绝所有的访问

        #Deny from all

        Allow from all

        #是否显示列表(在发布项目后一般是不启用,对于这个配置,针对DocumentRoothtdos外的目录生效)

        #Options +indexes

        #是否启用rewrite

        Allowoverride  all

        #我们有时候,也可以把rewrite机制和规则写这里

        #RewriteEngine On

        #RewriteRule  news-id(\d+)\.html$   news.php?id=$1

    </Directory>

    6/建立多个目录,<Directory "D:\AppServ\www\saisai\wp-admin">

        #拒绝所有的访问 ,保护目录

        Deny from all

    </Directory> 

     

    url重写的缺点:我看只有一个,那就是效率不如生成html的,因为它不是真正意义上的静态页,每次请求是要读取数据库的。但你可以用缓存技术来补偿一下。

    伪静态是站在seo角度看.,他对于的页面不是存在的,而是每次查询数据库得到的信息,

    真静态的页面是真的存在.

    如何更好的使用 伪静态+ob

    定期清理静态文件

    windows 

      编写一个 clear.php 文件,可以去检测某个目录下的文件是否过期

      在编写my.bat文件,做个计划任务,即可定期清理文件

    “del d:/appserver/www/news-id100.html”

      或者制作一个clear.php定义一个unlin删除函数,ab测试一下

    "C:\\myenv\\apache\\bin\\ab.exe" -n 1 -c 1 http://www.hsp.com/clear.php

    clear.php

    <?php   unlink("d:/appserver/www/news-id100.html"); ?>

      windows使用任务计划.

    linux使用crontab

    vi qingli.sh

    #!/bin/bash

    #qingli.sh

    rm -rf /usr/local/apache/htdoc/news-id100.html

    然后crontab -e建立计划任务即可。

    伪静态和真静态的特点和区别

    ①真静态访问效率高,利于seo.可以减少对数据库的操作。但是会占用大量的磁盘.

    ②伪静态一、可以方便的实现对搜索引擎的优化,二、占空间比较小。三、通过生成不同view-id2.hmtl 可以实现内容的变化.四有效的防止了注入***

    真静态和伪静态的选择          

    什么情况下不适合使用静态化技术.

    网站实时性要求高,不要使用静态化(真静态,伪静态均不适宜).

    如果网站访问量较小,没有必要使用静态化技术

    如果数据项目不多,但是访问频率极大,建议使用真静态,比如新浪新闻频道

    如果数据项目海量,使用真静态会生成海量的html静态页面,建议

    使用伪静态

    在一个大型网站中,静态化技术是综合使用的,这个需要大家经验

    的积累,多做项目

    对于一些特殊的CMS都会有相应的伪静态方案,如wordpress使用wp-super cache插件,这些需要在实际的应用中学习。

    当然还有开启gzip的方法也可提高网站的访问速度,如在.htaccess文件加入下面代码,然后在gzip.zzbaike.com测试结果

     

    <Ifmodule mod_deflate.c> 

    AddOutputFilter DEFLATE html xml php js css 

    </Ifmodule>

     

     

    个人推荐使用伪静态配合缓存技术来为提供大型网站提速

     

关键字

上一篇: 尼康F3

下一篇: kindle3 破解字体