偽靜態(tài)實現(xiàn)
偽靜態(tài):沒有靜態(tài)文件的靜態(tài)化
偽靜態(tài)實現(xiàn)
【1代碼實現(xiàn)】
比如這個網(wǎng)頁
http://www..net/soft.php/1,100,8630.html
其實處理的腳本是soft.php 參數(shù)為1,100,8630
相當(dāng)于soft.php?a=1&b=100&c=8630 只不過這樣的URL太難記铸史。搜索引擎也不喜歡耕陷。
真靜態(tài)只是完全生成了HTML驯遇。
客戶端訪問的時候直接輸出。不用腳本解釋。在流量非常大的時候(比如每天有上百萬的訪問量的時候)會起到很好的效果酸员。也就是說服務(wù)器端實實在在的存在這個HTML頁面住拭。
當(dāng)然在你網(wǎng)站的流量沒有那么大的時候偷线。URL重寫是最好的方法(個人觀點,大流量的時候可以考慮負(fù)載均衡了垮耳。同樣沒有關(guān)系)
附URL重寫的方法有很多種颈渊,APACHE,IISREWRITE终佛。甚至PHP腳本都可以直接處理俊嗽。比如上例中就是PHP腳本直接處理(該方法好處是大流量的時候直接減輕WEB伺服器的壓力。PS:同樣也是個人觀點:
================================================
下面以程序為例講一下PHP偽靜態(tài)的程序?qū)崿F(xiàn)方法
程序為例:
http://www..net/soft.php/1,100,8630.html
<?php
//利用server變量 取得PATH_INFO信息 該例中為 /1,100,8630.html 也就是執(zhí)行腳本名后面的部分
if(@$path_info =$_SERVER["PATH_INFO"]){
//正則匹配一下參數(shù)
if(preg_match("http://(\d+),(\d+),(\d+).html/si",$path_info,$arr_path)){
$gid =intval($arr_path[1]); //取得值 1
$sid =intval($arr_path[2]); //取得值100
$softid =intval($arr_path[3]); //取得值8630
}else die("Path:Error!");
//相當(dāng)于soft.php?gid=1&sid=100&softid=8630
}else die('Path:Nothing!');
//就是這么簡單了铃彰∩芑恚~)
?>
【2重寫規(guī)則實現(xiàn)】
apache rewrite:現(xiàn)URL的跳轉(zhuǎn)和隱藏真實地址
2.Apache Rewrite的配置
Apache下的Rewrite配置主要有兩種,一種是針對整個apache服務(wù)器的配置牙捉,此種配置的Rewrite規(guī)則是直接
在httpd.conf下書寫竹揍。配置步驟如下:
(1)去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"號;
(2)然后再在httpd.conf中書寫如下規(guī)則:
RewriteEngine on
當(dāng)訪問任何以t_開頭,以.html結(jié)尾的文件時邪铲,將$1用與(.*)匹配的字符替換后芬位,訪問相應(yīng)的test.php頁面
RewriteRule ^/t_(.*).html$ /test.php?id=$1
另一種是針對apache服務(wù)器下的某一目錄的配置,此種配置的Rewrite規(guī)則需在此目錄下建立一個.htaccess
文件來書寫带到。配置步驟如下:
(1)去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"號;
(2)修改httpd.conf文件中的(232行)"AllowOverride None"為"AllowOverride all",同時最好將Options
也置為"all",否則可能會出問題昧碉。
(3)在目錄中建立.htaccess文件,并用記事本打開揽惹,書寫如下規(guī)則:
RewriteEngine on
RewriteRule ^/t_(.*).html$ /test.php?id=$1
RewriteRule 正則(article.php) 目標(biāo)url(article_list.php);