随着网站规模的扩大,往往会需要有多个二级域名的站,比如按照城市分类的58同城。用户只须登录一个城市网站,如果切换到其他城市,都能自动登录。这实际上是将登录信息保存在cookie里,所有的城市站点都调用该cookie。那么这些二级域名之间是如何共享cookies的呢?
本文就教大家如何在多个二级域名之间共享cookie。
首先,新建三个站点,绑定的主机头分别是www.×××.com、bbs.×××.com、blog.×××.com。
在www.×××.com站点下添加一个文件test.asp,文件代码如下:
<% Response.Cookies("MyName") = "Anne" Response.Cookies("MyName").Expires = date()+30 Response.Cookies("MyName").Domain = ".×××.com" Response.Cookies("MyName").Secure = False Response.Write Request.Cookies("MyName") %>
在其他两个站点分别添加同样文件test.asp,代码如下:
<% Response.Write Request.Cookies("MyName") %>
因为我是在本地做的测试,所以还需要修改下hosts文件,把3个域名都指向到127.0.0.1,也就是添加如下内容:
文件位置:C:\WINDOWS\system32\drivers\etc\hosts.asm
127.0.0.1 bbs.×××.com
127.0.0.1 blog.×××.com
127.0.0.1 www.×××.com
127.0.0.1 blog.×××.com
127.0.0.1 www.×××.com
到此,基本设置都已经完毕了,现在开始测试了。
我们依次打开www.×××.com、bbs.×××.com、blog.×××.com单个站点,发现都可以显示“Anne”,这说明我们是三个站点都成功取到cookie值了。
如果执行退出操作,也就是让cookies过期失效,参考下面代码:
Response.Cookies("MyName").Expires = date()-30 Response.Cookies("MyName").Domain = ".×××.com"
注意:
- Response.Cookies("MyName").Secure = False,Secure属性一定要是false,或者直接不执行这行,如果Secure = True,则bbs和blog的2级域名是取值不了。
- Response.Cookies("MyName").Domain = ".×××.com",domain的值,我设置为"×××.com",也就是没有前面的点,在ie下成功,其他浏览器不稳定。
- 在局域网内其他机器上,修改host指向到我机器的IP,取值成功。
- 在局域网另外一台机器上架设bbs.×××.com,把test.asp文件copy过去,同时修改host到当前机器,也同样取值成功。
好了,看了这篇文章,是不是已经学会了二级域名之间共享cookies的设置。关于cookies的本站还有一篇文章如何利用js控制cookie保存浏览记录,感兴趣的同学可以点击查看。
声明:如需转载,请注明来源于www.webym.net并保留原文链接:http://www.webym.net/jiaocheng/206.html