现在的位置: 网页制作教程网站制作教程 >正文
网页高级教程

多个二级域名之间如何共享cookies

发表于2016/11/14 网站制作教程 0条评论 ⁄ 热度 2,898℃

随着网站规模的扩大,往往会需要有多个二级域名的站,比如按照城市分类的58同城。用户只须登录一个城市网站,如果切换到其他城市,都能自动登录。这实际上是将登录信息保存在cookie里,所有的城市站点都调用该cookie。那么这些二级域名之间是如何共享cookies的呢?

二级域名共享cookie

本文就教大家如何在多个二级域名之间共享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

到此,基本设置都已经完毕了,现在开始测试了。

我们依次打开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保存浏览记录,感兴趣的同学可以点击查看。

  • 暂无评论