有没有办法判断是否为.domain.com
而不是www.domain.com
设置了Cookie?客户端JS或服务器端PHP的解决方案都可以。
我想要删除为.domain.com
设置的任何Cookie,因为我最近为静态内容设置了static.domain.com
,并且我不希望将Cookie发送到静态子域。我已将网站设置的所有Cookie转换为使用www.domain.com
,但现有用户将为.domain.com
设置旧Cookie。
答案 0 :(得分:2)
您可以更改Cookie名称 - 如果检测到旧的Cookie名称,请将其删除,然后将其重置为完整域名的新名称。
答案 1 :(得分:2)
您需要做的是,在一段时间内,故意从.domain.com
删除Cookie并通过发送www.domain.com
标题的组合将其添加到Set-Cookie
:< / p>
Set-Cookie: cookieName=; expires=Wed, 1-Sep-2010 12:34:56 GMT; path=/; domain=.domain.com
Set-Cookie: cookieName=CookieValue; expires=Tue, 1-Sep-2020 12:34:56 GMT; path=/; domain=www.domain.com
请注意,第一个日期是过去的日期。第二个日期是未来十年。这将删除cookie的.domain.com
版本(如果在那里)并将其添加(如果需要)到www.domain.com
。
在某些时候,如果您确定每个用户(或者足够接近您的用户)至少访问过您的网站并将这对标头发送给他们,您可以停止这样做。
请注意,如果您的Cookie是在JavaScript中设置的(例如Google Analytics),则不需要第二行Set-Cookie
行
答案 2 :(得分:1)
似乎Javascript和PHP都无法访问有关cookie的域信息。我建议删除所有旧cookie。也许是一个计划,每个拥有新cookie的人都会获得额外的属性集,如果没有找到,则所有cookie都会被删除。