是否有任何方法来设置子域上不可读的cookie?换句话说,可以在domain.com上使用cookie,但是不能使用 www.domain.com或xyz.domain.com。
//this is what i'm "intending"...
setcookie($name,$value,$expires,'/','domain.com');
//however, this is how it behaves:
setcookie($name,$value,$expires,'/','.domain.com');理由是:我在子域上设置一个静态CDN,不希望用户会话cookie对每个图像、css文件、js文件等进行来回切换。
...do我必须回到使用www.domain.com作为我的网站?有什么解决办法吗?
发布于 2009-09-13 15:21:23
显然,在"domain.com“上有一个与"*.domain.com”相匹配的cookie是预期的行为。
例如:持久客户端状态HTTP COOKIES状态(一些重点是地雷):
domain=DOMAIN_NAME在搜索cookie列表以查找有效cookie时,将对cookie的域属性与将从中获取URL的主机的Internet域名进行比较。..。 “尾匹配”意味着域属性与主机的完全限定域名的尾相匹配。-- "acme.com“的域属性将匹配主机名"anvil.acme.com”和"shipping.crate.acme.com"。 只有指定域中的主机才能为域设置cookie,并且域中必须至少有两个(2)或三个(3)周期的(),以防止".com“、".edu”和"va.us“形式的域。如果任何域在下面列出的七个特殊顶级域中的一个中失败,则只需要两个时间段。任何其他域至少需要三个。七个特殊的顶级域名是:"COM“、"EDU”、"NET“、"ORG”、"GOV“、"MIL”和"INT“。
所以,你要么必须:
www.domain.com“.anotherdomain.com")
发布于 2009-09-13 15:20:25
这就是为什么相当多的网站(包括这个网站)注册一个专用域作为CDN使用的原因。
发布于 2009-09-13 15:23:16
这是不可能的,因为cookie域是针对域名的尾匹配。你必须和www一起去。
https://stackoverflow.com/questions/1417963
复制相似问题