一般來說,搜索引擎會把動態網頁地址中出現的“?”字符視做“停止標記”,在它之后的所有參數都會被忽略掉。例如對“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?,F在我們需要在服務器端指定一些變量。比方說,我需要把“?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?的詳細內容,html教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答