使用www在新选项卡中打开页面时,PHP会话消失

时间:2012-09-16 20:51:26

标签: php mysql session

我正在使用PHP会话。我使用session_start()设置会话并设置一些会话变量。然后,我使用那些会话变量。

现在,我说我在浏览器中打开了一个页面(http://example.com)并启动了PHP会话。如果我在新标签页(http://www.example.com中打开另一个页面,请注意网址中的www),第一个会话就会消失。

避免这种情况的解决办法是什么?

2 个答案:

答案 0 :(得分:2)

您的会话ID存储在Cookie中; Cookie仅对特定域有效。要强行解决此问题,您需要使用session_set_cookie_paramssession_start之前)以确保Cookie对您感兴趣的所有子域都有效($domain参数控制此项)。< / p>

但是,更好的方法是在Web服务器级别设置从其中一个域到另一个域的永久重定向;如果您有一个公共网站并且您完全关心您的搜索引擎评级,那么命令式无论如何都要这样做。

答案 1 :(得分:1)

实际上你应该做什么,除非你有非常好的理由不这样做,就是只使用一个网址。据我所知,使用不同的URL来访问相同的内容并不像浏览器引擎那样认为它是重复内容的SEO非常友好。

您应该将其配置为始终使用www或根本不使用它。使用.htaccess文件相当容易。