如何在多个子域中使用会话变量?

时间:2011-05-12 02:47:10

标签: php session dns

当我点击网站通知电子邮件中的链接时,我一直在丢失会话变量。在这个问题上打了很长时间之后,我今天意识到www.domain-name.com不包含会话变量,而domain-name.com就是这样!

为什么会这样?我该怎么做才能把事情做好(php-apache)?

4 个答案:

答案 0 :(得分:3)

会话基于Cookie,每个域都有 www.domain.comdomain.com不同,因此他们的Cookie会保持独立。

标准做法是选择一个变体,301将另一个变体重定向到首选变体。

答案 1 :(得分:2)

会话ID存储在cookie中,并且可以在cookie中指定它应该如何对域名做出反应。

查看PHP的setcookie文档。

您可以使用以下命令更改PHP的会话cookie配置:

ini_set("session.cookie_domain", ".mydomain.com");

答案 2 :(得分:1)

'www'在技术上没什么特别之处。域名“domain.com”与“www.domain.com”不同;如果要关联它们,则需要在某处显式,通常在HTTP服务器配置中。

答案 3 :(得分:0)