为什么如果我在www.example.com上创建一个cookie,并在example.com上检查,那么cookie不存在?我打算使用.htaccess重定向非www到www域.但是我该如何解决呢?
浏览器是这里的主要原因,而不是
PHP.他们按域名存储,不知道www是特殊情况;从他们的角度来看,www.mydomain.com和mydomain.com是不同的字符串,因此具有不同的安全策略.但是,你可以做一些事情.
原文链接:https://www.f2er.com/php/139998.html设置cookie时,请使用.mydomain.com(带前导点).这将告诉您的用户的浏览器,使mydomain.com和所有子域(包括www)都可以访问cookie. PHP的setcookie有参数$domain,但它是列表中的第五位,因此您可能需要将$expire和$path设置为其默认值才能得到它.
setcookie('name','value',time()+3600,'/','.mydomain.com');
然而,为了保持一致性,您可能希望考虑将所有网络流量重新路由到特定域,即将mydomain.com流量发送到www.mydomain.com,反之亦然.我对SEO的模糊知识(编辑如果不正确)告诉我,这是有用的,以免没有重复的内容,并且它为您节省了所有这些身份验证问题.此外,如果您将资产存储在子域上,那么Cookie上的缓存速度会降低,因此每次都需要运输资源,所以只能在www上存储应用程序cookie可以提高速度.
Here is a tutorial on how to accomplish such a redirect in Apache.