台灣最大裝潢接案平台
輕鬆接案網
抓漏新屋裝潢.舊屋裝修.合格裝潢
裝修證照.是專業施工品質的保障

首頁  •  j2h 論壇 • 程式設計討論     • 

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

房東:魔力八度
發表時間:2007-01-30


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編碼不熟悉的情況下。








PHP動態網頁轉換HTML的一個簡單辦法 2005-09-10 14:11 dgtiger
我用的是discuz論壇,虛擬主機dg.homeweb.cn指向unix目錄 /home/xxx/www/dg

我想在/home/xxx/www/dg下建立.htaccess檔案,實現類比靜態網頁,該怎么做?
我的.htaccess內容是這樣的︰

RewriteEngine on
RewriteBase /
RewriteRule ^(.*)/archiver/([a-z0-9\-]+\.html)$ $1/archiver/index.php?$2
RewriteRule ^(.*)/index.html$ $1/index.php?sid=$2
RewriteRule ^(.*)/digest.html$ $1/digest.php
RewriteRule ^(.*)/t-([0-9]+)\.html$ $1/viewthread.php?tid=$2
RewriteRule ^(.*)/f-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2
RewriteRule ^(.*)/t-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2 page=$3 fpage=$4
RewriteRule ^(.*)/f-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2 page=$3
RewriteRule ^(.*)/f-([0-9]+)-([a-z0-9\-]+)\.html$ $1/forumdisplay.php?fid=$2 filter=$3
RewriteRule ^(.*)/p-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?fid=$2 tid=$3 action=printable


在IE裡輸入http://dg.homeweb.cn/digest.html 結果不行,在本地調試也不行。證明不成功,怎么辦?





  • 贊助網站       

    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!
    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務



  •  共 0 人回應

    姓名:
    佈告內容:
    其他選項: