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

PHP会话数据在没有http的情况下丢失,php,session,Php,Session,我的php会话有一个小问题-当我登录http://www.domain.com它可以工作,但当我删除http://www.part I必须重新登录 在php.ini中是否有任何需要更改的内容,以便无论http://www.是否存在?这是因为您的cookie设置在www.domain.com上,登录后您试图从domain.com访问它。浏览器将阻止它 您必须通过将.domain.com设置为5来声明子域可以访问cookie。setcookie()的参数您可能需要检查php ini变量:sessio

我的php会话有一个小问题-当我登录
http://www.domain.com
它可以工作,但当我删除
http://www.
part I必须重新登录


在php.ini中是否有任何需要更改的内容,以便无论
http://www.
是否存在?

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


您必须通过将
.domain.com
设置为5来声明子域可以访问cookie。
setcookie()

的参数您可能需要检查php ini变量:
session.cookie\u domain
,它可能被设置为仅适用于整个域,请尝试仅使用子域进行设置。

我已经这样做了(可能不是最好的解决方案,但它可以完成任务)

in.htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
因此,它会将www.从域中删除,并重定向到http:)


谢谢你的帮助。

www的行为类似于子域,因此
www.domain.com
domain.com
在技术上有区别。我会使用.htaccess文件将用户重定向到一个域或另一个域。我添加了会话\u set\u cookie\u参数(0,“/”,“.domain.com”);但遗憾的是,它没有起作用。有没有一种方法可以让会话在2个URL上运行?@Codemunkie您在启动会话之前设置了它吗?是的,我设置了,在会话_start()之前的顶部@Codemunkie检查您的会话是否没有自动启动(例如在php.ini中,或者通过打开错误报告并检查
session\u start()
是否没有打印通知。并检查这一点