我一直在点击网站通知邮件中的链接时,会经常丢失我的会话变量。在长时间苦思冥想后,我今天意识到www.domain-name.com不包含会话变量,而domain-name.com则包含!
为什么会发生这种情况?我该怎么做才能解决这个问题(php-apache)?
会话基于cookie,它们是按域名分离的。
www.domain.com
与domain.com
是不同的域名,因此它们的cookie被分开存储。
标准做法是选择一个变体,并将另一个变体301
重定向到首选变体。
ini_set("session.cookie_domain", ".mydomain.com");
“www”并没有什么特别的技术含义。域名“domain.com”与“www.domain.com”是不同的;如果您想将它们关联起来,那就需要在某个地方明确指定,通常是在HTTP服务器配置中。
`Options +FollowSymlinks RewriteEngine on rewritecond %{http_host} ^domain.com [nc] rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]`
再次感谢! :) - sniper