偽靜態技術可以有兩種方法來處理:
1,在php文件中,直接使用正則表達式技術處理;
http://localhost/index.php/2,111,345.html,在index.php文件中會獲取2,111,345.html將其組成新的文件,再跳轉到新的文件即可。
<?php $parameters = $_SERVER['PATH_INFO']; if(preg_match('/^\/(\d+),(\d+),(\d+)\.html/si',$parameters,$arr)){ $file = "http://127.0.0.1/".$arr[1].'-'.$arr[2].'-'.$arr[3].'.html'; header("Location:".$file); }else{ echo '地址出錯!'; }
2,配置apache的rewrite機制;
(1)apache啟用rewrite機制,打開httpd.conf,LoadModule rewrite_module modules/mod_rewrite.so前面的#去掉。
(2)虛擬主機,在操作系統的hosts文件添加 127.0.0.1 www.hsp.com。
(3)在httpd.conf中啟用虛擬主機,Include conf/extra/httpd-vhosts.conf前面的#去掉。
(4)打開httpd-vhosts.conf文件,
<VirtualHost *:80> # ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "E:/Program Files/AppServ/www/resume" ServerName www.hsp.com ErrorLog "logs/dummy-host2.example.com-error.log" # CustomLog "logs/dummy-host2.example.com-access.log" common <Directory "E:/Program Files/AppServ/www/resume/hello1"> # 拒絕所有訪問 Allow/deny Allow from all # 是否顯示列表(項目發布后一般不啟用) # Options +indexes # 是否啟用rewrite AllowOverride all </Directory> <Directory "E:/Program Files/AppServ/www/resume/hello2"> # 拒絕所有訪問 Allow/deny deny from all # 是否顯示列表(項目發布后一般不啟用) # Options +indexes # 是否啟用rewrite # AllowOverride all </Directory> </VirtualHost>
(5)添加rewrite規則,可以在resume文件夾或hello1、hello2文件夾,添加.htaccess文件,.htaccess文件中添加rewrite規則,也可以在httpd-vhosts.conf文件添加rewrite規則,rewrite負責如下:
RewriteEngine On RewriteRule news-id(\d+)\.html$ news.php?id=$1
直接將內容復制到.htaccess文件,或者在httpd-vhosts.conf的某個目錄下AllowOverride all下一行添加以上內容。
3,偽靜態技術是站在seo角度看,他對於的頁面是不存在的,而是每次每次查詢數據庫得到的信息。真靜態的頁面是真實存在的。如果一個網站使用真靜態技術,會生成海量的html靜態頁面,可以考慮使用偽靜態技術來優化我們的網站。
url重寫(偽靜態)的好處:(1)可以方便實現對引擎的優化,並且比生成靜態頁面更加方便。(2)占空間比較小。(3)首頁每天都自動變化,不用維護。網站首頁一般都有熱點排行之類的,你可以設為24小時排行,一周排行,再加上最新文章,最新點評等。這樣首頁天天是有變化的。(4)便於廣告的輪顯。比如,可以把art1234.php,這個虛成n個頁,如art_1234.php,news_1234.php,,top_1234.php,在不同的頁面放不同的廣告。總之是動態的。你就可以隨意動。
url重寫的缺點:效率不如生成html的,因為它不是真正意義上的靜態頁,每次請求是要讀取數據庫的,但可以用緩存技術補償下。