偽靜態技術產生的背景:
1、靜態網頁與動態比較:
1)靜態網頁:
優勢:a、 對搜尋引擎友好,被收錄的質量高;b、訪問速度快;c、資源(cpu 等)占用少。
劣勢:a、對於大型門戶,或者社群來說,不斷的修改將會產生大量i/o,會導致磁碟出現碎片甚至出現磁碟壞道。相當恐怖乙個隱患。使用者資訊一旦沒有了就沒戲玩了。b、儲存空間占用會多一些。
2)動態網頁:
優勢:相對於靜態,它的劣勢也就是動態的優勢所在——占用空間少,對硬碟友好。
劣勢:a、對搜尋引擎不友好。搜尋引擎會不收錄帶問號的**?因為搜尋引擎怕由於問號而進入死迴圈。詳細可見另外一篇札記(學習札記——網頁搜尋基礎知識 )
b、高併發時資源占用較多。
而偽靜態就是在這樣背景下應運而生了,它在保留動態的優點的基礎上,使得**靜態化,也就是讓**裡不帶問號,騙過收錄的爬蟲就行了。這樣完美地糅合了前邊兩者的優點。
優點:靜態的優點+動態的優點
不足:流量稍大一些使用偽靜態就出現cpu使用超負荷,由於偽靜態是用正則判斷而不是真實位址,分辨到底顯示哪個頁面的責任也由直接指定轉由cpu來判斷了,所以cpu占有量的上公升,確實是偽靜態最大的弊病.
實現機制:是利用伺服器端,對請求的動態頁面做改動,讓瀏覽器認為訪問的也是靜態頁面,這個時候,瀏覽器位址列中顯示的就是靜態位址資訊(不帶問號)了。
兩種實現方法:
1、使用isapi_rewrite進行動態鏈結重寫html靜態**。isapi_rewrite是乙個dll元件,re_write是iis裡的乙個模組。這個篩選器實現是通過正規表示式,將動態網頁**對映成為靜態**。如可將news.asp?id=95通過re_write將其轉換成news/95.html。對映的正規表示式在httpd.ini檔案裡進行設定。
舉個小小例:處理資料翻頁,那麼寫法是:
more_<%=page%>_<%=type%>.html (注:page是翻頁頁數,type是資料型別)表現形式:more_1_95.html
不過你需要在httpd.ini檔案中增加以下**:
rewriterule /more_(\d+)_(\d+)\.html /jsp/more\.asp\?page=$1&type=$2 [n,i] 字串9
如果你的動態程式有多個引數需要傳遞,那麼就增加多個(\d+)即可,如下:
rewriterule /more_(\d+)_(\d+)_(\d+)\.html /asp/more\.asp\?page=$1&type=$2&type2=$3 [n,i]
優點:在程式上基本不需做什麼變化。麻煩:要實現這個需要對iis進行控制,所以當你租用別人的伺服器時,則需要先跟服務商聯絡。(當然這個是對asp而言,asp.net就不用——直接將dll程式集放到程式中的bin再適當的配置即可實現)
2、iis的404錯誤處理機制:通過自定義錯誤,轉向我們準備好的處理頁。不過這種可拓展性有待研究,對程式處理的統籌要求也高,不大適合實際應用的樣子。
首先,設定站點屬性-自定意錯誤
找到http錯誤404,然後編輯屬性->訊息型別選中url->url填入「/index.asp」,或您的錯誤處理頁面.
這樣,比如使用者或蜘蛛訪問 時(12345為文章在資料庫的id).由於些頁面不存在,所以觸發了404錯誤.轉向了index.asp
在index.asp裡加
currdomain=request.servervariables("http_host") '當前訪問網域名稱
currurl=replace(request.servervariables("query_string"),"404;http://"&currdomain&":80","") '當前訪問url
此時的currurl應該是:12345.html .
這樣,就得到使用者正在試圖訪問的頁面.然後提取裡邊的文章id(應該為:12345),用正則,這裡就不多說了.
然後到資料庫裡提取出文章內容.輸出到頁面裡,就ok了.
結論:偽靜態太適合用在普通的企業**上了——既不要求高併發,但同時又很在乎seo(搜尋引擎優化),而且也要求後台可動態更新。——當然實現直接生成靜態頁也行,因為這種不像社群那種修改量那麼大。
偽靜態技術
偽靜態技術產生的背景 1 靜態網頁與動態比較 1 靜態網頁 優勢 a 對搜尋引擎友好,被收錄的質量高 b 訪問速度快 c 資源 cpu 等 占用少。劣勢 a 對於大型門戶,或者社群來說,不斷的修改將會產生大量i o,會導致磁碟出現碎片甚至出現磁碟壞道。相當恐怖乙個隱患。使用者資訊一旦沒有了就沒戲玩了...
PHP 偽靜態技術
下面是生成偽靜態位址和逆轉偽靜態位址的兩個函式,這兩個函式在相應的位置引用就可以實現將轉成這樣的形式。使用參考 將此ion list page 2 位址生成 action list page 2.htm形式 url ion list page 2 urlstr makeurlhtml url ech...
頁面靜態化3 偽靜態技術
偽靜態 減少伺服器對資料響應的負荷 載入不用調動資料庫 方便優化引擎 但同時伴隨著缺點 生成的真靜態檔案多,伺服器對html檔案的響應負擔也比較重 空間占用比較大。如果乙個系統使用真靜態進行頁面靜態化,需要生成海量的靜態頁面,我們可以考慮使用偽靜態來處理 目前業內最喜歡用的乙個技術是 偽靜態技術 o...