PHP Cookie 问题 - www 或没有 www

2022-08-31 00:32:27

为什么如果我在 www.example.com 上创建了一个 cookie,并在 example.com 上检查它,那么该 Cookie 就不存在了?我计划只使用重定向非www到www域。但是我该如何解决这个问题呢?.htaccess


答案 1

浏览器是这里的主要罪魁祸首,而不是PHP。他们按域存储,并且不知道这是一个特例;从他们的角度来看,并且是不同的字符串,因此具有不同的安全策略。但是,您可以做一些事情。wwwwww.mydomain.commydomain.com

设置 Cookie 时,请使用(带前导点)。这将告诉您用户的浏览器使Cookie可供所有子域访问,包括.PHP的setcookie有参数,但它在列表中排名第五,所以你可能需要设置和它们的默认值才能得到它。.mydomain.commydomain.comwww$domain$expire$path

setcookie('name', 'value', time()+3600, '/', '.mydomain.com');

但是,为了保持一致性,您可能希望考虑将所有 Web 流量重新路由到特定域,即向 发送流量,反之亦然。我对SEO的模糊知识(如果不正确,请编辑)告诉我,它很有帮助,以免出现重复的内容,并且可以为您节省所有这些身份验证问题。此外,如果您将资产存储在子域上,则在那里放置Cookie会降低流量,因为每次都必须传输它,因此仅将应用程序cookie存储在上可以提高速度。mydomain.comwww.mydomain.comwww

这是有关如何在Apache中完成此类重定向的教程。


答案 2
setcookie("CookieName", "value", time()+3600, "/", ".mydomain.com");

推荐