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