几年来,笔者通过建设多城市家教网站,获得了一些用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获取当前分站下的内容。
通过上面的解决方案,可以实现用二级域名实现多城市分站的功能。本文讲得比较简单,可以提供一个解决思路,具体实施,还要看程序员的理解能力。其实,建立多城市分站并不是很难,只是在普通网站的基础上增加了泛解析与分站识别和管理的功能而已。