繁体   English   中英

使用PHP / Nginx将cookie域从无域迁移到.mydomain.com

[英]Migrate cookie domain from no domain to .mydomain.com with PHP/Nginx

我有一个用PHP编写并在Nginx HTTP服务器上运行的网站。 我有一个名为“ locale”的cookie,它代表用户的语言环境。 6个月来,我将像这样发送cookie:

setCookie("locale", "fr", time() + 36000, "/");

作为不含Cookie的域名,我知道它仅在我的单个域名“ www.mydomain.com”上可用。

但是现在,我想创建2个新闻子域:

  1. m.mydomain.com(移动部分)
  2. secure.mydomain.com(安全版本)

我看到m或安全无法访问在www上设置的“语言环境” cookie。 所以现在我要像这样发送cookie:

setCookie("locale", "fr", time() + 36000, "/", ".mydomain.com");

是的,我的cookie现在随处可见! 但是,由于有些用户已经浏览过我的网站,因此他们的域名较少,而cookie却是新域名,他们的浏览器向我发送了两个cookie,但PHP给了我前一个。 结果,没有人可以再更改语言环境。

问题是:如何从该域较少的cookie迁移到域指定的cookie? 不更改cookie名称。

您设置的第一个不带域的Cookie默认为www.mydomain.com,因为它比“ .mydomain.com”更具体,所以选择的是原始Cookie。 在此处阅读已接受的答案。

如何获取特定Cookie的域?

作为结论,我将在1周的时间内将其放入我的index.php文件中:

setCookie('locale', null, time() - 5000, '/');

为了删除无域cookie。 我已经在所有主流浏览器上进行了测试,但看不到与以下任何冲突:

setCookie('locale', 'fr', time() + 36000, '/', '.mydomain.com');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM