Internet上網站數(shù)量的增多,網站的宣傳越來越多地依賴搜索引擎的搜索結果,怎樣讓搜索引擎更好地為站點服務與提高站點的訪問量有著非常密切的關系。搜索引擎并非是上帝的贈送給Internet產物,搜索引擎其本身既是站點,同時也是由各個程序來建設的。而各種搜索引擎一般都使用一種稱為搜索引擎機器人的技術,這種機器人會根據一定規(guī)則的在Internet上訪問站點,并把有價值的頁面收集到搜索引擎的緩存數(shù)據庫保存。一旦有用戶來搜索,那么搜索引擎會直接在其緩存中搜索結果,并將結果報給用戶。
搜索機器人的查找規(guī)則比較復雜,但是其中有一個很重要的規(guī)則,就是搜索機器人對靜態(tài)頁面的處理能力要強于動態(tài)頁面。一般情況下搜索機器人簡單的把靜態(tài)頁面理解為擴展名成.html或者.htm的頁面,而將擴展名是.ASP、.PHP及.CGI的頁面理解成動態(tài)頁面。換言之如果一個站點都是.html頁面,那么它被搜索引擎全文搜到的可能性就要比.PHP的頁面高幾個數(shù)量級,當然因此而來的訪問量也會高出很多。
如何把自己站點的內容全都靜態(tài)頁面化,最簡單的做法自然是每個頁面都用頁面設計軟件直接作成靜態(tài)頁面,這對小型站點不是難事,但是對頁面總數(shù)上萬的大中型站點,都用手工的靜態(tài)頁面設計就會帶來高昂的成本和保存、修改上的困難。在這種情況下,資金雄厚的大網站會采用能在后臺生成.html文件的內容管理(CMS)系統(tǒng)管理。無論是手工做的.html文件,還是后臺生成的.html文件,都能實現(xiàn)真正意義上的靜態(tài)頁面。
但仍有相當數(shù)量的中型站點采用動態(tài)發(fā)布的CMS系統(tǒng),動態(tài)系統(tǒng)對網頁的更新效率很高,可在后臺發(fā)排的同時在前臺顯示,缺點是要消耗相當量的服務器資源,同時得到一堆擴展名為.ASP.PHP的頁面。要完全替換CMS系統(tǒng)并不容易,而且具有靜態(tài)頁面后臺生成功能的成熟CMS系統(tǒng)價格都很高昂。
動態(tài)CMS系統(tǒng)有無簡單獲取.html文件擴展名的方法?當然有,采用URL重寫轉向功能。
對URL重寫轉向的支持,在Apache服務器上由一非缺省模塊(mod_rewrite)來完成,這個模塊的功能很強大,同時也很煩瑣。而在IIS下也同樣有類似的模塊,分別是ISAPI REWRITE及IIS REWRITE。無論是在Apache下還是在IIS下,重寫轉向的語法都基于正則表達式,只有少量的不同。當然對一般的應用,沒必要把所有手冊和說明文檔翻熟,下面以一個虛擬的http://www.siyizhu.com動態(tài)站點為例介紹一些簡單的方法,讀者可以根據自己網站的情況做調整。
網絡欄目:http://www.siyizhu.com/content.asp?sort=3
在IIS的安裝isapirewrite的情況下只須設置:RewriteRule /content/(d+).html /content.asp?sort= [N,I]
這樣就將:/content/3.html 這樣的請求映射成為/content.asp?sort=3
然后通過:http://www.siyizhu.com/content/3.html 同樣能訪問到剛才的頁面。
另一個更通用的能將所有的動態(tài)頁面做參數(shù)映射的表達式是:
RewriteRule (.*?.php)(?["/]*)?/(["/]*)/(["/]*)(.+?)? (?2&:?)=?5: [N,I]
這樣就把http://www.siyizhu.com/foo.php?a=A&b=B&c=C表現(xiàn)成http://www.siyizhu.com/foo.php/a/A/b/B/c/C。
當然用URL重寫轉向而得的.html的URL實質上還是個動態(tài)頁面,只是搜索引擎上的機器人及瀏覽器上的鏈接與正常的靜態(tài)頁面一摸一樣,URL對用戶的親和度非常高。即便是在用模塊方式運行的Apache下,這樣或多或少都會有一些性能上的損失。同時如果真的把論壇這種更新非常快的內容也讓Google搜索進去并不能方便用戶,有時候還會帶來很多負面影響。所以URL重寫轉向最合適的用途是一些中小型CMS動態(tài)頁面發(fā)布平臺,以便讓搜索引擎能記錄下主頁內容從而讓更多的人能搜索到。