Php Cookie仅为具有www.Prefix的站点设置

Php Cookie仅为具有www.Prefix的站点设置,php,apache,cookies,Php,Apache,Cookies,所以我正在创建一个用户必须登录的站点。如果用户希望站点记住他的登录名,我会设置一个cookie来记住这些数据。然而,cookie似乎是为网站www.mysite.com设置的。这似乎意味着,如果我访问地址为mysite.com(没有www)的网站,cookie将无法再访问。如何使任一站点上的cookie集都可以被两个站点访问?将cookie设置为.mysite.com而不是www.mysite.com。这样,cookie将识别公共域后缀并与两个URL兼容。将cookie设置为.mysite.co

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

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

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

Brian Scott已经正确地回答了这个问题,但我想我会添加以下内容:

在我看来,如果您允许用户“记住”他们的登录,那么您将需要对如何/在哪里/为什么/何时进行特定控制,这包括维护安全连接

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

编辑:回应评论。只是很粗糙,但有点像这样:

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

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

Brian Scott已经正确地回答了这个问题,但我想我会添加以下内容:

在我看来,如果您允许用户“记住”他们的登录,那么您将需要对如何/在哪里/为什么/何时进行特定控制,这包括维护安全连接

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

编辑:回应评论。只是很粗糙,但有点像这样:

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

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

您不想同时使用这两个错误。选择一个,这对搜索引擎优化也更好。我个人只需通过htaccess重定向到www,并保持其标准

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

你不想两者都用。选择一个,这对搜索引擎优化也更好。我个人只需通过htaccess重定向到www,并保持其标准

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


也许是复制品?嗯,很棘手,你知道吗,与所有好的实践相反,让我们参考一下,希望我们注意到
$domain
参数…可能重复,或者重复?嗯,很棘手,你知道吗,与所有好的实践相反,让我们参考一下,希望我们注意到
$domain
参数……可能重复好的观点。此外,如果服务器重定向到站点的公共url,而不是指向同一内容的多个路径,SEO通常会更高。我如何设置这样的重定向?使用一些示例代码编辑文章,您可以将其放在处理页面(或安全区域内的所有页面)的顶部。感谢您的代码,我开始了解一切了,没问题。我注意到我的代码中有两个错误,并为您修复了它们(以防万一您使用了它)。这是一个很好的观点。此外,如果服务器重定向到站点的公共url,而不是指向同一内容的多个路径,SEO通常会更高。我如何设置这样的重定向?使用一些示例代码编辑文章,您可以将其放在处理页面(或安全区域内的所有页面)的顶部。感谢您的代码,我开始了解一切了,没问题。我注意到我的代码中有两个错误,并为您修复了它们(以防万一您使用了它)。我按照您的建议做了,但现在出现了相反的问题。该网站在mysite.com上正确地读取cookies,但在www.mysite.com上,该网站的运行就像不存在cookies一样。@user532493:我不知道为什么,我过去多次成功地使用过这种方法。可能值得发布创建cookie的代码,以确保其正确执行。我按照您的建议做了,但现在出现了相反的问题。该网站在mysite.com上正确地读取cookies,但在www.mysite.com上,该网站的运行就像不存在cookies一样。@user532493:我不知道为什么,我过去多次成功地使用过这种方法。可能值得发布创建cookie的代码,以确保其正确执行。My.htaccess文件中已包含以下指令:
RewriteCond%{REQUEST_FILENAME}上的RewriteEngine-f RewriteCond%{REQUEST_FILENAME}-重写规则^(.*)$$1.php[L,QSA]
我应该把你的代码放在它下面吗?在它上面,那些只是限制文件和目录以及完整的url重写。My.htaccess文件中已经有这个指令:
RewriteCond%{REQUEST\u FILENAME}-f RewriteCond%{REQUEST_FILENAME}-重写规则^(.*)$$1.php[L,QSA]
我应该把你的代码放在它下面吗?在它上面,那些只是限制文件和目录以及完整的url重写。