我创建了一堆用于身份验证的 cookie,网站的一部分允许用户导航到该网站的英国部分。这是通过在域中使用 uk 前缀来实现的。 (例如 uk.domain.com)。
我基本上有一个小脚本,用于检查子域是否称为 UK,然后我提供 UK 内容。
我怎样才能让 domain.com 上的所有 cookie 都转移到 uk.domain.com?
我试过了 ...
... 将 cookie 设置为根域
setcookie("auth", "blahblah", time() + 123, "/", "localhost")
... 在域的开头添加一个点
setcookie("auth", "blahblah", time() + 123, "/", ".localhost")
...在两个域上创建 cookie
setcookie("auth", "blahblah", time() + 123, "/", "localhost")
setcookie("auth", "blahblah", time() + 123, "/", "uk.localhost")
... 创建没有任何域或路径的 cookie。
setcookie("auth", "blahblah", time() + 123, "/")
setcookie("auth", "blahblah", time() + 123)
我似乎无法让它发挥作用。
最佳答案
发现您无法将 localhost 设置为 chrome 上的 cookie。它需要是注册管理机构控制的域,而不是 IP 或 Intranet 主机名。
我通过基本上将 localhost 转换为域找到了一种解决方法。
我将此添加到主机文件 (c:\windows\system32\drivers\etc\hosts) -
127.0.0.1 localhost.com
127.0.0.1 uk.localhost.com
然后使用 localhost 域创建 cookie
setcookie("auth", "blahblah", time() + 123, "/", "localhost.com")
这允许我从 http://uk.localhost.com 访问身份验证 cookie (或几乎任何子域)。
关于php - 将 cookie 共享到本地主机上的子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38669040/