html網頁純靜態:php
一、加載的時候不須要調用數據庫,打開速度快,另外減小了服務端腳本的匹配時間。
二、減小了服務器對數據響應的負荷。
三、從安全角度講,純靜態網頁不易遭受黑客攻擊。
四、從網站穩定性來說,即便網站代碼或數據庫出了問題,靜態網站也不會受到影響。html
僞靜態既url重寫,就是截取傳入的Web請求並自動將請求重定向到其餘url的過程,其目的主要是經過重寫URL的方法實現去掉動態網頁的參數,從而更加有利於搜索引擎的收錄。正則表達式
僞靜態的優勢有5點:
一、維護方便,網頁天天都自動變化,不用維護或者說極大地減小了維護量。
二、能夠方便的實現對搜索引擎的優化,易於被搜索引擎收錄。
三、縮短了url的長度,隱藏文件實際路徑提升了安全性,易於用戶記憶和輸入。
四、佔空間比較小,不像純靜態那樣多佔用近過多的空間。
五、安全性能經過url地址隱藏或加密,讓黑客沒法找到真實的動態頁面,同時動態文件不須要過高的權限,從而避免了木馬的注入。數據庫
僞靜態最大的缺點就是會佔用必定量的CPU使用率,增長服務器的響應時間。瀏覽器
綜上所述,咱們該怎麼選擇呢?
一、既然真僞靜態和僞靜態對搜索引擎的效果同樣,咱們就能夠選擇僞靜態了,畢竟它的優勢是純靜態不可取代的。
二、大量使用僞靜態會照成CPU超負荷,因此咱們只要不大量使用就能夠了,設計在線使用了相應的編譯緩存技術,己經很好的優化並解決這個問題了。
三、靜態只是針對搜索引擎的,不須要給用戶使用,咱們有着很成熟的僞靜態技術,沒有必要去作真靜態,給用戶形成過多沒必要要的麻煩。緩存
從以上的討論得知僞靜態的重要性,可是如何實現呢?具體實現方案以下:安全
個人測試目錄是http://localhost/test/ 在該目錄下新建.htacess文件服務器
在.htacess添加以下代碼:性能
<IFMODULE mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^t_(.*)\.php$ test.php?id=$1 [L]
</IFMODULE>測試
我在個人測試目錄下新建一個test.php,編輯以下內容:
<?php
echo $_GET['id'];
?>
而後在個人瀏覽器輸入:http://localhost/test/t_3455.php
頁面輸出:3455
咱們來看看常見的 Discuz! 7.x 論壇程序的網址僞靜態化 .htaccess 文件內容:
RewriteEngine On
RewriteBase /bbs
RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1
「RewriteEngine On」,開啓 Rewrite 規則開關;
「RewriteBase」,指後文的 RewriteRule 重寫規則生效的相對路徑;
「RewriteRule」,定義一條重寫規則。後面的字符串經過正則表達式進行匹配,匹配字符串以 ^ 開頭並以 $ 結尾,替換字符串中 $1 指被第一次被匹配成功的字符串。
此處重寫規則的功能:好比當訪客訪問 http://www.example.com/bbs/forum-21-3.html 時,網站內容將顯示爲 http://www.example.com/bbs/forumdisplay.php?fid=21&page=3 的內容(訪問被重寫網址時,網址不會被重定向/跳轉)。
另外,若是在某條重寫規則末尾添加 [R] 或 [R=301] 等時,訪客訪問被重寫網址時,客戶端將被執行重定向(跳轉)到重寫後的網址。