當前位置:才華齋>計算機>php語言>

php動態網頁怎麼轉換成html靜態頁面

php語言 閱讀(2.58W)

雖然我們都喜歡頁面更好看一些的動態頁面,但是靜態頁面也有這無法替代的作用。接下來就一起看看PHP動態頁面怎麼轉換為HTML靜態頁面吧!更多內容請關注應屆畢業生網!

php動態網頁怎麼轉換成html靜態頁面

  當動態網頁遇上搜索引擎

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

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

  搜尋引擎不支援動態網頁的原因

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

  php轉化為html靜態頁面

雖然不能保證把每個動態頁面都轉化為靜態的html檔案,但如果網站是駐留在apache伺服器上,則只需一個簡單的小指令碼就可以把大多數動態頁面都轉換成html檔案。

  1.確定需要轉換成字尾為html的php檔案

我們的目標是那些名下包含動態子頁較多的網頁。以“為例,我們需要對“”之後的動態子頁進行轉換。 例如,如果網站裡有一個名為“arts and crafts”的子目錄,url為“,其它子目錄和這個url只在最後的變數上不同,因此我們需要修改當之後跟隨變數時伺服器對它的開啟方式。

 2.通知伺服器在接受一個html頁面的呼叫請求後開啟一個php檔案

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

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

在開始建立伺服器變數前,我們需要先在這個新建的cess檔案中建立一個rewrite engine (url重寫工具)。只需要在檔案第一行寫上

  rewriteengine on

這就等於告訴伺服器我們要改變一些檔案的處理方式。接下來的一行就要指定重寫規則:

rewriterule ^directory-([0-9]*.* $1 [l,nc]

這個指令表明:只要接到url中包含“directory-0”到“directory-9”的任意靜態網頁的頁面呼叫請求,伺服器將以“?變數”地址返回給呼叫使用者。

先別急著編輯下一條改寫規則,我們有必要在更改實際的php頁面之前先進行一下測試。我們可以對上面的"重寫規則"進行測試。首先新開一個瀏覽器視窗,在位址列中輸入“”或“”,如果我們看到的頁面顯示為“就表明改寫規則工作正常。

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

現在,我們需要讓搜尋引擎能夠看到我們經過“改頭換面”的新的網頁地址。那麼,是不是需要趕緊把網站再向搜尋引擎提交一遍呢? 不用這麼費勁,我們只需開啟php檔案編輯一下就行了。不過在此之前,應記得將要修改的每個指令碼都做個備份,將其存放在硬碟上。然後需要確定建立更改連結地址的程式的不同地方。最好在前端而不要在後臺進行更改。php檔案將會從cess檔案中得到形如“之類的資訊。我們需要把這些動態生成的網頁地址更改一下,並以靜態化頁面地址顯示給使用者和搜尋引擎。即將所有url中包含“的部分替換為“directory-”,並加上字尾。