網站提速-僞靜態(3)

 僞靜態 php

真靜態只是徹底生成了HTML 
固然在你網站的流量沒有那麼大的時候。URL重寫是最好的方法(若是訪問量很大,還能夠考慮負載均衡) 
URL
重寫的方法有不少種,APACHE(rewrite)IISREWRITEPHP腳本直接處理。咱們先講解如何使用PHP腳本直接處理。查看php信息,會看到pathinfo信息,這樣作php重寫。css

<?php html

//案例 linux

$str="abck1234dddd9000"; web

//找到4個連續的數 數據庫

preg_match('/(\d\d)(\d\d)/si',$str,$arr);//i不區分大小寫echo apache

echo "<pre>"; windows

print_r($arr); 緩存

echo "</pre>"; bash

?>


 

配置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.能夠減小對數據庫的操做。可是會佔用大量的磁盤.

②僞靜態1、能夠方便的實現對搜索引擎的優化,2、佔空間比較小。3、經過生成不一樣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>

 

 

我的推薦使用僞靜態配合緩存技術來爲提供大型網站提速

相關文章
相關標籤/搜索