PHP会话数据在没有http的情况下丢失

时间:2013-10-18 15:17:17

标签: php session

我的php会话有一个小问题 - 当我登录http://www.domain.com时它可以正常工作,但是当我删除http://www.部分时,我必须重新登录。

我需要在php.ini中更改任何内容,以便我可以保持登录状态http://www.是否存在?

3 个答案:

答案 0 :(得分:0)

这是因为您的Cookie设置在www.domain.com上,登录后您尝试从domain.com访问它。浏览器会阻止它。

您必须通过将.domain.com设置为setcookie()的参数来声明Cookie可供子域访问。

答案 1 :(得分:0)

您可能必须检查php ini变量:session.cookie_domain,它可能设置为仅适用于完整域,尝试仅使用子域设置它。

答案 2 :(得分:0)

我这样做了(可能不是最好的解决方案,但它能完成这项工作)

在.htaccess中

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

所以它删除了www。从域名并重定向到http。 :)

感谢您的帮助。