饼干只为网站设置与www。字首

时间:2012-06-20 15:43:22

标签: php apache cookies

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

3 个答案:

答案 0 :(得分: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();
}

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

您不想同时使用它们。选择一个,它也适用于SEO。我个人只是通过htaccess重定向到www并保持标准。

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]