一尘不染

PHP cookie问题-www或没有www

php

为什么如果我在www.example.com上创建cookie并在example.com上进行检查,为什么该cookie不存在?我打算只使用.htaccess将非www重定向到www域。但是我该如何解决呢?


阅读 267

收藏
2020-05-29

共1个答案

一尘不染

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

设置cookie时,请使用.mydomain.com(带前导点)。这将告诉您的用户的浏览器使Cookie可以访问mydomain.com所有子域,包括www。PHP的setCookie方法有争论$domain,但它是排在第五位,所以你可能需要设定$expire$path为默认值,为了得到它。

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

但是,为了保持一致性,您不妨考虑将所有网络流量重新路由到特定域,mydomain.com即将流量发送到www.mydomain.com,反之亦然。我对SEO的模糊知识(如果不正确,请编辑)告诉我,这样做非常有帮助,以便避免重复的内容,并且可以节省所有此类身份验证问题。此外,如果您将资产存储在子域中,则每次都必须传输它,因此在其上存储cookie会减慢流量,因此仅在其中存储应用程序cookie
www可以提高速度。

2020-05-29