當動態網頁遇上搜尋引擎
雖然動態網頁相比於靜態頁面擁有許多優點,但它在搜尋引擎的檢索上卻碰了個大釘子。無論任何一家網站,尤其是那些以行銷為目的的企業網站,沒有誰會希望自己的網頁無法被搜尋引擎檢索到。但事實上卻是:動態網站設計的許多內容頁面都無法得到搜尋引擎的檢索,取得更多php影片教學請關注http://www.lampbrother.net兄弟連教育。
一般來說,搜尋引擎會把動態網頁位址中出現的「?」字元視做「停止標記」,在它之後的所有參數都會被忽略掉。例如對「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入门培训教程 php动态网页怎么转换成html的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!