偽靜態是相對真實靜態來講的.
一、什么是靜態技術?
所謂靜態的意思,就是地址中不帶問號。
二、為什么要用偽靜態技術?
Web應用程序最大的特點之一就是無狀態,當一個頁面跳轉到另一個頁面時,那么這個頁面上的所有參數都將拋棄,所以動態頁面一般利用url地址來保存其參數,就像:http://www.oowok.com/news.jsp?id=90
這樣,搜索引擎在錄取該頁面時,可能會因為問號而進入死循環(以前動網就有這樣一個漏洞,蜘蛛進去出不來了),所以很多時候帶問號的地址是不會進去的,這樣便降低了頁面的收錄效率。
既然這樣,那么選用不帶問號的url不是可以更好的讓搜索引擎收錄自己的網頁?的確。靜態網頁的url正好不帶問號,所以我們要偽造靜態,目的就是為了SEO,提高網站的收錄效率。
三、實現靜態的三種方法
1、重寫url參數
參數過多,也不利于搜索引擎收錄,故可以通過修改參數實現靜態。
先看動態的url地址,當我們點擊它時,頁面跳轉到news.jsp頁面的同時,還傳遞給頁面一個參數id=1,然后我們取得了id的值,再由"select * from article where id="& id 找到對應的記錄。由此可知,整個過程的關鍵是取得參數的值,所以,也可以在靜態的url包含該參數的值。又要包含參數的值,又要考慮靜態,于是得出一個解決方案,即要實現這樣的轉換:
http://www.csui.cn/news.jsp?id=90
http://www.csui.cn/news.jsp?/1.html
比較兩個url的格式,我們僅僅改變動態地址的參數,這種方式叫作重寫url參數法。
不過它也存在表面和內在的缺陷。例如,它仍然存在.asp的記號,更重要的是它并沒有去掉問號。
通常我們為了更好的緩解服務器壓力,和增強搜索引擎的友好面.都將文章內容生成靜態頁面.
但是有的朋友為了實時的顯示一些信息.或者還想運用動態腳本解決一些問題.不能用靜態的方式來展示網站內容.
但是這就損失了對搜索引擎的友好面.怎么樣在兩者之間找個中間方法呢,這就產生了偽靜態技術.
就是展示出來的是以.html一類的靜態頁面形式,但其實是用ASP一類的動態腳本來處理的.
我的一個思路是用IIS的404錯誤處理機制來實現的.這個比rewrite技術要靈活得多.
首先,設置站點屬性-自定意錯誤
找到HTTP錯誤404,然后編輯屬性->消息類型選中URL->URL填入“/home.asp”,或您的錯誤處理頁面.
這樣,比如用戶或蜘蛛訪問http://www.ynshangji.com/corp/?4080.html時(4080為文章在數據庫的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了.
這樣.用戶或蜘蛛看到的URL還是他訪問的URL.而我們對內容的處理上可以用到了動態技術.這就是我們想要的結果.說得簡單了一些.但是基本思路就是這樣了.
偽靜態的利與弊
當然猶如一篇文章的作者所說的:"如果流量稍大一些使用偽靜態就出現CPU使用超負荷,我的同時在線300多人就掛了,而不使用偽靜態的時候同時在線超500人都不掛,我的ISS數是1000。”
確實是這樣的,由于偽靜態是用正則判斷而不是真實地址,分辨到底顯示哪個頁面的責任也由直接指定轉由CPU來判斷了,所以CPU占有量的上升,確實是偽靜態最大的弊病。
我們應該選擇偽靜態還是真靜態?
1、使用真靜態和假靜態對SEO來說沒有什么區別
2、使用真靜態可能將導致硬盤損壞并將影響論壇性能
3、使用偽靜態將占用一定量的CPU占有率,大量使用將導致CPU超負荷
4、最重要的一點,我們要靜態是為了SEO
所以:
1、使用真靜態的方法可以直接排除了,因為無論怎么生成,對硬盤來說都是很傷的。
2、既然真偽靜態的效果一樣,我們就可以選擇偽靜態了。
3、但是偽靜態大量使用會照成CPU超負荷。
4、所以我們只要不大量使用就可以了。
5、既然靜態只是給SEO看的,我們只需要偽靜態給SEO就行了,不需要給用戶使用。
6、所以我們只要在專門提供給SEO爬的Archiver中使用偽靜態就可以了。
7、謝謝大家耐心看我寫的文章。
8、有何不解的地方或是有不同的看法歡迎提出。
關于偽靜態和真靜態的評論
真正的靜態化和偽靜態還是有本質的區別的。為瀏覽用戶處理一個純粹htm和一個調用多個數據的php在CPU的使用率方面明顯前者少。記得原來有個人說html下載硬盤讀寫頻繁,他這么說好像讀取數據庫不用讀寫磁盤似的,何況還有一大堆緩存的零散php也是放在硬盤的,這些讀取不用磁盤操作么?可笑。
讀取單個htm+圖片Flash等附件就可以實現的目的,何苦要讀數據庫又要讀php緩存文件又要重新整合數據輸出再+圖片Flash等附件這么大費周章呢?CMS首頁不需要很多的互動的,論壇那一套不應該拿到這里來用,相反應該更多考慮的是:美觀!兼容!信息的直觀!性能!還有穩定!
最后,不得不提的是安全性檢查,請在把獲取到的參數放進數據庫之前,務必做好防sql注射處理哦~
深圳網站建設公司_自由創想,深圳專業網站建設公司,品牌網站視覺策劃,程序開發,手機網站建設,電話:13418872552 0755-32803050,歡迎來電咨詢!