0

所以我正在创建一个用户必须登录的网站。如果用户希望网站记住他的登录信息,我会设置一个 cookie 来记住这些数据。但是,cookie 似乎是为网站 www.mysite.com 设置的。这似乎意味着如果我使用地址 mysite.com(没有 www.)访问我的网站,则无法再访问 cookie。如何使两个站点都可以访问任一站点上设置的 cookie?

4

3 回答 3

3

布赖恩斯科特已经正确回答了这个问题,但我想我会添加这个:

在我看来,如果您允许用户“记住”他们的登录,那么您将希望对如何/在哪里/为什么/何时保持特定的控制,这包括保持安全连接。

对于涉及任何类型登录的项目,我始终确保我拥有适当的 SSL 证书和安全连接,然后我检查他们用于访问站点的 URL 并重定向以确保它们留在我的安全域中。例如,我检查 www。和 https 前缀,并始终重定向到https://www.domain.com ......只是我的两分钱。

编辑:回应评论。真的很粗糙,但是像这样:

if (($_SERVER['SERVER_PORT'] != '443') || ($_SERVER['HTTPS'] != 'on') || (!strstr ($_SERVER['HTTP_HOST'], 'www'))) {
  header ("Location: https://www.mydomain.com");
  exit();
}

第二次编辑:我粗略输入的代码中有两个错误。

于 2012-06-20T15:48:09.243 回答
2

为.mysite.com而不是www.mysite.com设置您的 cookie 。这样,cookie 将识别公共域后缀并与两个 url 兼容。

于 2012-06-20T15:46:27.660 回答
1

您不想同时使用两者。选择一个,它对 SEO 也更好。我个人只是通过 htaccess 重定向到 www 并保持它的标准。

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
于 2012-06-20T16:23:35.073 回答