PHP動態網頁轉換HTML的一個簡單辦法

  PHP開發工具的優勢

    作爲一種簡單而高效的Server端嵌入語言,PHP已成爲Internet上最流行的一種動態網站製作工具。它不但能夠對多種數據庫提供良好支持,而且與其它的Server端腳本語言如ASP相比,PHP免費開放源碼並且提供跨平臺的支持,這使它能夠輕易適應當今網絡中各種異質的網絡環境;可讓網頁製作人員能夠非常快捷、方便地製作出功能強大的動態Web頁面。
動態網頁的優勢

    隨着計算機和互聯網技術的飛速發展,由於靜態網頁沒有數據庫的支持,不但增加工作量,而且由於缺乏交互功能,當網站有大量信息及功能較多時,完全依靠靜態網頁是無法實現的,於是動態網頁就成爲網站維護的必然要求。動態網頁具有良好的交互性、數據庫查詢、可與HTML以外的文件進行交互、縮短查詢時間、提高瀏覽效率等靜態網頁所無法比擬的優點。

    搜索引擎市場的潛力

    據權威統計,全球約有80%的網絡用戶通過搜索引擎來查找資料或產品信息,此外據美國專業搜索引擎服務公司iProspect調研結果表明:逾60%的雅虎用戶和72%的Google用戶在進行查詢時,都會點擊自然搜索結果來尋找他們需要的訊息。顯然,網站要想獲得儘可能多的訪問量,搜索引擎無疑是最理想、也是最直接的目標。

    當動態網頁遇上搜索引擎

    雖然動態網頁相比於靜態頁面擁有許多優勢,但它在搜索引擎的檢索上卻碰了個大釘子。無論任何一家網站,尤其是那些以營銷爲目的的企業網站,沒有誰會希望自己的網頁無法被搜索引擎檢索到。但事實上卻是:動態網站設計的很多內容頁面都無法得到搜索引擎的檢索。

    一般來說,搜索引擎會把動態網頁地址中出現的“?”字符視做“停止標記”,在它之後的所有參數都會被忽略掉。例如對 “index.php?category=x”的所有子頁,搜索引擎最後檢索到的URL只有一個,那就是index.php這一個頁面。這樣一來,動態網 頁就陷入了無法被搜索引擎發現和檢索的尷尬境地,直接失去了被用戶發現的機會和搜索引擎這樣一個廣闊的市場空間。

    搜索引擎不支持動態網頁的原因

    動態網頁是由數據庫所驅動,這就使得搜索引擎將面對無數URL而被數據庫套住陷入死循環的危險,這也就是我們所說的蜘蛛陷阱(Spider Traps)。而且一旦Spider被網站套住,那麼它對數據庫的重複訪問請求也會造成網站服務器系統的徹底癱瘓。鑑於此,搜索引擎對於動態網頁中URL裏包含“?”之後的字符一概不予讀取。

    PHP轉化爲HTML靜態頁面

    雖然不能保證把每個動態頁面都轉化爲靜態的HTML文件,但如果網站是駐留在Apache服務器上,則只需一個簡單的小腳本就可以把大多數動態頁面都轉換成HTML文件。

    1.確定需要轉換成後綴爲HTML的PHP文件

    我們的目標是那些名下包含動態子頁較多的網頁。以“index.php?category=x”爲例,我們需要對“index.php”之後的動態子頁進行轉換。 例如,如果網站裏有一個名爲“Arts and Crafts”的子目錄,URL爲“index.php?category=1”,其它子目錄和這個URL只在最後的變量上不同,因此我們需要修改當index.php之後跟隨變量時服務器對它的打開方式。

    2.通知服務器在接受一個HTML頁面的調用請求後打開一個PHP文件

    我們需要在服務器上index.php所在的目錄下放置一個.htaccess文本文件。.htaccess文件是Apache服務器上的一個目 錄配置設置文件,它提供了針對目錄改變配置的方法,即在一特定的文檔目錄中放置一個包含一個或多個指令的文件(.htaccess文件),來作用於此目錄 及其所有子目錄。.htaccess的功能包括設置網頁密碼、設置發生錯誤時出現的文件、改變主頁文件名、禁止讀取文件名、重新導向文件、增加MIME類 別、禁止列目錄下的文件等。

    在需要針對目錄改變服務器的配置,而對服務器系統沒有root權限時,應該使用.htaccess文件。如果服務器管理員不願意頻繁修改配置,則 可以允許用戶通過.htaccess文件自己修改配置,尤其是ISP在一臺機器上提供多個用戶站點,而又希望用戶可以自己改變配置的情況下,一般會開放部 分.htaccess的功能給使用者自行設置。對於Vdeck用戶來說,可能需要先創建一個文本文件,然後在管理面板將其更名爲.htaccess。現在 我們需要在服務器端指定一些變量。比方說,我需要把“?category=x”這個變量改成“directory-x.html”,這樣就能消除動態頁面 無法被搜索引擎檢索的問題。

    在開始創建服務器變量前,我們需要先在這個新建的.htaccess文件中創建一個Rewrite Engine (URL重寫工具)。只需要在文件第一行寫上RewriteEngine On,這就等於告訴服務器我們要改變一些文件的處理方式。接下來的一行就要指定重寫規則:
RewriteRule ^directory-([0-9]*.* index.php?category=$1 [L,NC]這個指令表明:只要接到URL中包含“directory-0”到“directory-9”的任意靜態網頁的頁面調用請求,服務器將以“index.php?變量”地址返回給調用用戶。

    先別急着編輯下一條改寫規則,我們有必要在更改實際的PHP頁面之前先進行一下測試。我們可以對上面的"重寫規則"進行測試。首先新開一個瀏覽器 窗口,在地址欄中輸入“directory-1.htm”或“directory-1.html”,如果我們看到的頁面顯示爲 “index.php?category=1”就表明改寫規則工作正常。

    3.讓搜索引擎看到我們的靜態化頁面

    現在,我們需要讓搜索引擎能夠看到我們經過“改頭換面”的新的網頁地址。那麼,是不是需要趕緊把網站再 向搜索引擎提交一遍呢? 不用這麼費勁,我們只需打開PHP文件編輯一下就行了。不過在此之前,應記得將要修改的每個腳本都做個備份,將其存放在硬盤上。然後需要確定創建更改鏈接 地址的程序的不同地方。最好在前端而不要在後臺進行更改。PHP文件將會從.htaccess文件中得到形如 “index.php?category=x”之類的信息。我們需要把這些動態生成的網頁地址更改一下,並以靜態化頁面地址顯示給用戶和搜索引擎。即將所有URL中包含“index.php?category=”的部分替換爲“directory-”,並加上.html後綴。

    一旦發現待修改的區域,在更改後要隨時檢查有無錯誤。如果在腳本中有錯誤而沒有發現,糾正起來是相當棘手的,尤其在對PHP編碼不熟悉的情況下。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章