幾年來,筆者通過建設多城市家教網站,獲得了一些用PHP建設多城市分站的經驗,采用二級域名的方式進行實現,稍作整理,希望為你提供一些幫助,權當解決方案。咱們常看到的分類信息網、多城市家教網站、多城市招聘網站等,都是采用這一技術實現的。
域名泛解析
大多數的域名提供商都支持泛解析,在域名解析面板中,將主機名設置為*號,然后做A記錄指向到某個IP,或用NAME記錄指向到某個域名。所謂泛解析是一個任意前綴的解析,假設域名為mydomain.com,泛解析的結果為*.mydomain.com,*號處可以是任何域名字符,例如a.mydomain.com或者b.domain.com,這就是二級域名。為什么要這么做?這是因為考慮到多城市網站的前綴可能是多元化的,比如深圳分站可能是sz.mydomain.com,北京分站為bj.mydomain.com。采用泛解析的意義就在于此,使網站支持任何城市的分站二級域名并指向到同一臺服務器。
分站識別
上面通過域名泛解析已經實現了城市二級域名指向,那么,如何在PHP程序里判斷當前二級域名是哪個分站?然后根據二級域名的前綴從數據庫中讀取對應分站的信息并將當前分站的內容顯示在網站里。先看代碼:
$myarr = explode('.',$_SERVER['HTTP_HOST']);
//獲取當前主機,即當前請求的域名。例如請求網址為http://sz.domain.com,將獲得sz.domain.com。再通過explode函數進行分割。
$Quest_City = $myarr[0];
//從分割的數組中取第一個數組元素,即獲得sz
獲得當前分站的域名前綴標識后,再寫一段程序,對分站數據庫里看看是否已經在后臺開通了該程序的分站。若沒開通,則顯示錯誤信息。如果已經開通了,再根據分站標識獲得分站ID。注意,網站中的數據記錄需要有分站ID字段,這樣才能根據分站ID獲取當前分站下的內容。
通過上面的解決方案,可以實現用二級域名實現多城市分站的功能。本文講得比較簡單,可以提供一個解決思路,具體實施,還要看程序員的理解能力。其實,建立多城市分站并不是很難,只是在普通網站的基礎上增加了泛解析與分站識別和管理的功能而已。