探究PHP实现二级域名访问


前段阵子,做了一个学车网,比如有个叫abc的用户,那么他的个性二级域名有可能是这样的,http://abc.markdream.com  这样的形式来访问他的个人主页,(包括目前的QQ空间、点点网都是这样的),今天特此研究。由于我现在测试是在本地,所以自然就是以hosts文件举例了。

看本文的时候,首要要了解以下几个名词,请自行百度:

1、泛解析(泛域名解析)

2、域名

3、服务器

关于泛解析网上一大把的姿势,很高兴我的域名服务商提供了此项服务

做好泛解析后,你需要在程序里面设置好session的共享方式了,一般我们是把它加载程序的最前方,有主入口文件可以直接写在主入口文件中即可

ini_set('session.cookie_domain', "markdream.com");//跨域访问Session

注意这里仅仅只是针对N个虚拟主机都在同一台服务器上面的设置,默认session保存是以文件的方式保存在服务器中,当在不同的服务器中共享session信息时,建议采用memcache来管理session信息,使之共享能够达到N域共享的效果,具体看哪天有时间再来写这个心得。

好啦,到这里我们就把硬性的基础配置完成了,那么我们要实现前面所讲的效果,首先要自己建立一张用户数据表吧

限于篇幅,我就仅以用户名、密码、other字段来演示就可以了,假如现在我们要去查看一个用户的信息都是一条SQL完成,其实用域名来也是一样的。

首先声明我只讲原理,我们要获取当前访问的域名是什么样子的,这个可以很容易用下面这个函数

//获取当前访问域
$host=$_SERVER['HTTP_HOST'];
//假如现在的域名访问形式是 abc.markdream.com
//那么我们所做的事情就是把abc给截取出来就行了
                                    
……这里是截取的方法(替换,查找,此处不再赘述)
                                    
//既然拿到用户名了,那么想查看一个用户的信息应该不难吧
//select * from user where username='abc'

那么就实现了二级域名的访问形式了,其实原理都是一样的,关键就是使用二级域给用户的体验性要强,那么二级域名也要注意这么几点

1、不要给用户注册关键字,诸如bbs、admin、**其它你想到的。

2、二级域一定要设置cookie_domain的值。

3、Cookie一定要设置域名,比如my.com,请将cookie的域名设置成“.my.com”注意有个.一定不能落下。

效果演示图

到这里就差不多讲完这个二级域的实现了,关于还有什么域名绑定,Session跨域,有时间再测试在写心得吧^_^


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论审核已启用。您的评论可能需要一段时间后才能被显示。