如何仅为域(没有子域)设置cookie


How to set a cookie only for a domain (without subdomains)?

我需要为example.com设置cookie,但我希望static.example.com没有cookie。

在setcookie()中设置domain参数将使它们可用,例如example.com及其所有子域,这是我不想要的。

有什么想法吗?

来源:http://www.php.net/manual/en/function.setcookie.php#93641

[..]firefox将在域值前加一个句点(句号),如果该句点还不存在。这是因为firefox希望域参数值(如果存在)是域名,而不是主机名。

因此,如果www是主机名,则使用域值为www.example.com的setcookie()是不正确的。如果您想将cookie限制在单个主机上,请将域参数提供为空字符串,例如(注意最右边的参数):

setcookie("TestCookie", "SomeValue", time()+3600, "/~rasmus/", ""); 

这显然是不可能的。

如果有人找到了办法,我会改变接受的答案。

您可以为www.example.com而不是example.com显式设置cookie。请记住,www.example.com也类似于子域,在其中设置cookie不会影响static.example.comsomething_else.example.com