PHP动态网页转换HTML的一个简单办法
作為一種簡單而高效的Server端嵌入語言,PHP已成為Internet上最流行的一種動態(tài)網(wǎng)站制作工具。它不但能夠?qū)Χ喾N數(shù)據(jù)庫提供良好支持,而且與其它的Server端腳本語言如ASP相比,PHP免費開放源碼并且提供跨平臺的支持,這使它能夠輕易適應(yīng)當(dāng)今網(wǎng)絡(luò)中各種異質(zhì)的網(wǎng)絡(luò)環(huán)境;可讓網(wǎng)頁制作人員能夠非常快捷、方便地制作出功能強(qiáng)大的動態(tài)Web頁面。
動態(tài)網(wǎng)頁的優(yōu)勢
隨著計算機(jī)和互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,由于靜態(tài)網(wǎng)頁沒有數(shù)據(jù)庫的支持,不但增加工作量,而且由于缺乏交互功能,當(dāng)網(wǎng)站有大量信息及功能較多時,完全依靠靜態(tài)網(wǎng)頁是無法實現(xiàn)的,于是動態(tài)網(wǎng)頁就成為網(wǎng)站維護(hù)的必然要求。動態(tài)網(wǎng)頁具有良好的交互性、數(shù)據(jù)庫查詢、可與HTML以外的文件進(jìn)行交互、縮短查詢時間、提高瀏覽效率等靜態(tài)網(wǎng)頁所無法比擬的優(yōu)點。
搜索引擎市場的潛力
據(jù)權(quán)威統(tǒng)計,全球約有80%的網(wǎng)絡(luò)用戶通過搜索引擎來查找資料或產(chǎn)品信息,此外據(jù)美國專業(yè)搜索引擎服務(wù)公司iProspect調(diào)研結(jié)果表明:逾60%的雅虎用戶和72%的Google用戶在進(jìn)行查詢時,都會點擊自然搜索結(jié)果來尋找他們需要的訊息。顯然,網(wǎng)站要想獲得盡可能多的訪問量,搜索引擎無疑是最理想、也是最直接的目標(biāo)。
當(dāng)動態(tài)網(wǎng)頁遇上搜索引擎
雖然動態(tài)網(wǎng)頁相比于靜態(tài)頁面擁有許多優(yōu)勢,但它在搜索引擎的檢索上卻碰了個大釘子。無論任何一家網(wǎng)站,尤其是那些以營銷為目的的企業(yè)網(wǎng)站,沒有誰會希望自己的網(wǎng)頁無法被搜索引擎檢索到。但事實上卻是:動態(tài)網(wǎng)站設(shè)計的很多內(nèi)容頁面都無法得到搜索引擎的檢索。
一般來說,搜索引擎會把動態(tài)網(wǎng)頁地址中出現(xiàn)的“?”字符視做“停止標(biāo)記”,在它之后的所有參數(shù)都會被忽略掉。例如對“index.php?category=x”的所有子頁,搜索引擎最后檢索到的URL只有一個,那就是index.php這一個頁面。這樣一來,動態(tài)網(wǎng)頁就陷入了無法被搜索引擎發(fā)現(xiàn)和檢索的尷尬境地,直接失去了被用戶發(fā)現(xiàn)的機(jī)會和搜索引擎這樣一個廣闊的市場空間。
搜索引擎不支持動態(tài)網(wǎng)頁的原因
動態(tài)網(wǎng)頁是由數(shù)據(jù)庫所驅(qū)動,這就使得搜索引擎將面對無數(shù)URL而被數(shù)據(jù)庫套住陷入死循環(huán)的危險,這也就是我們所說的蜘蛛陷阱(Spider Traps)。而且一旦Spider被網(wǎng)站套住,那么它對數(shù)據(jù)庫的重復(fù)訪問請求也會造成網(wǎng)站服務(wù)器系統(tǒng)的徹底癱瘓。鑒于此,搜索引擎對于動態(tài)網(wǎng)頁中URL里包含“?”之后的字符一概不予讀取。
PHP轉(zhuǎn)化為HTML靜態(tài)頁面
雖然不能保證把每個動態(tài)頁面都轉(zhuǎn)化為靜態(tài)的HTML文件,但如果網(wǎng)站是駐留在Apache服務(wù)器上,則只需一個簡單的小腳本就可以把大多數(shù)動態(tài)頁面都轉(zhuǎn)換成HTML文件。
1.確定需要轉(zhuǎn)換成后綴為HTML的PHP文件
我們的目標(biāo)是那些名下包含動態(tài)子頁較多的網(wǎng)頁。以“index.php?category=x”為例,我們需要對“index.php”之后的動態(tài)子頁進(jìn)行轉(zhuǎn)換。 例如,如果網(wǎng)站里有一個名為“Arts and Crafts”的子目錄,URL為“index.php?category=1”,其它子目錄和這個URL只在最后的變量上不同,因此我們需要修改當(dāng)index.php之后跟隨變量時服務(wù)器對它的打開方式。
2.通知服務(wù)器在接受一個HTML頁面的調(diào)用請求后打開一個PHP文件
我們需要在服務(wù)器上index.php所在的目錄下放置一個.htaccess文本文件。.htaccess文件是Apache服務(wù)器上的一個目錄配置設(shè)置文件,它提供了針對目錄改變配置的方法,即在一特定的文檔目錄中放置一個包含一個或多個指令的文件(.htaccess文件),來作用于此目錄及其所有子目錄。.htaccess的功能包括設(shè)置網(wǎng)頁密碼、設(shè)置發(fā)生錯誤時出現(xiàn)的文件、改變主頁文件名、禁止讀取文件名、重新導(dǎo)向文件、增加MIME類別、禁止列目錄下的文件等。
在需要針對目錄改變服務(wù)器的配置,而對服務(wù)器系統(tǒng)沒有root權(quán)限時,應(yīng)該使用.htaccess文件。如果服務(wù)器管理員不愿意頻繁修改配置,則可以允許用戶通過.htaccess文件自己修改配置,尤其是ISP在一臺機(jī)器上提供多個用戶站點,而又希望用戶可以自己改變配置的情況下,一般會開放部分.htaccess的功能給使用者自行設(shè)置。對于Vdeck用戶來說,可能需要先創(chuàng)建一個文本文件,然后在管理面板將其更名為.htaccess。現(xiàn)在我們需要在服務(wù)器端指定一些變量。比方說,我需要把“?category=x”這個變量改成“directory-x.html”,這樣就能消除動態(tài)頁面無法被搜索引擎檢索的問題。
在開始創(chuàng)建服務(wù)器變量前,我們需要先在這個新建的.htaccess文件中創(chuàng)建一個Rewrite Engine (URL重寫工具)。只需要在文件第一行寫上
RewriteEngine On
這就等于告訴服務(wù)器我們要改變一些文件的處理方式。接下來的一行就要指定重寫規(guī)則:
RewriteRule ^directory-([0-9]*.* index.php?category=$1 [L,NC]
這個指令表明:只要接到URL中包含“directory-0”到“directory-9”的任意靜態(tài)網(wǎng)頁的頁面調(diào)用請求,服務(wù)器將以“index.php?變量”地址返回給調(diào)用用戶。
先別急著編輯下一條改寫規(guī)則,我們有必要在更改實際的PHP頁面之前先進(jìn)行一下測試。我們可以對上面的"重寫規(guī)則"進(jìn)行測試。首先新開一個瀏覽器窗口,在地址欄中輸入“directory-1.htm”或“directory-1.html”,如果我們看到的頁面顯示為“index.php?category=1”就表明改寫規(guī)則工作正常。
3.讓搜索引擎看到我們的靜態(tài)化頁面
現(xiàn)在,我們需要讓搜索引擎能夠看到我們經(jīng)過“改頭換面”的新的網(wǎng)頁地址。那么,是不是需要趕緊把網(wǎng)站再向搜索引擎提交一遍呢? 不用這么費勁,我們只需打開PHP文件編輯一下就行了。不過在此之前,應(yīng)記得將要修改的每個腳本都做個備份,將其存放在硬盤上。然后需要確定創(chuàng)建更改鏈接地址的程序的不同地方。最好在前端而不要在后臺進(jìn)行更改。PHP文件將會從.htaccess文件中得到形如“index.php?category=x”之類的信息。我們需要把這些動態(tài)生成的網(wǎng)頁地址更改一下,并以靜態(tài)化頁面地址顯示給用戶和搜索引擎。即將所有URL中包含“index.php?category=”的部分替換為“directory-”,并加上.html后綴。
一旦發(fā)現(xiàn)待修改的區(qū)域,在更改后要隨時檢查有無錯誤。如果在腳本中有錯誤而沒有發(fā)現(xiàn),糾正起來是相當(dāng)棘手的,尤其在對PHP編碼不熟悉的情況下。
轉(zhuǎn)載于:https://www.cnblogs.com/amgod/archive/2005/04/14/137776.html
總結(jié)
以上是生活随笔為你收集整理的PHP动态网页转换HTML的一个简单办法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 经理人必看三部电影
- 下一篇: 进入软件开发行业必须要掌握的基础知识(2