为什么我的网站会设置两次Cookie?为“www.example.com”存储了一组cookie,并为“example.com”存储了相同的一组。
答案 0 :(得分:5)
最有可能的是,您允许通过域名example.com
和www.example.com
访问您的网站,而您尚未指定应为其设置Cookie的域名。 fifth parameter to setcookie()
指定域,因此仅将其设置为example.com
。这将使其可用于更高的域www.example.com
。
setcookie('key', 'value', time(), '/path', 'example.com');
通过URL重写,您可以在设置Cookie之前强制您网站的所有用户访问这些域中的一个或另一个域,但这仅仅是用户体验一致性的解决方案,而不是管理Cookie的方法。
来自文档:
域
Cookie可用的域。将域设置为“www.example.com”将使www子域和更高子域中的cookie可用。可用于较低域名的Cookie(例如“example.com”)可用于更高的子域名,例如“www.example.com”。仍旧实施已弃用的RFC 2109的旧版浏览器可能需要领先。匹配所有子域。