我正在使用 PHP 会话。我使用 session_start() 设置会话并设置一些会话变量。然后,我使用这些会话变量。
现在,假设我在浏览器 ( http://example.com ) 中打开一个页面并开始一个 PHP 会话。如果我在新选项卡中打开另一个页面(http://www.example.com,请注意 URL 中的 www ),第一个会话就会消失。
有什么办法可以避免这种情况?
我正在使用 PHP 会话。我使用 session_start() 设置会话并设置一些会话变量。然后,我使用这些会话变量。
现在,假设我在浏览器 ( http://example.com ) 中打开一个页面并开始一个 PHP 会话。如果我在新选项卡中打开另一个页面(http://www.example.com,请注意 URL 中的 www ),第一个会话就会消失。
有什么办法可以避免这种情况?
您的会话 ID 存储在 cookie 中;cookie 仅对特定域有效。要暴力破解这个问题,您需要使用session_set_cookie_params
(before session_start
) 确保 cookie 在您感兴趣的所有子域上都有效($domain
参数控制这一点)。
但是,更好的方法是在 Web 服务器级别设置从一个域到另一个域的永久重定向;如果您有一个公共网站并且您完全关心您的搜索引擎评级,那么无论如何都必须这样做。
实际上,除非您有充分的理由不这样做,否则您应该做的就是只使用一个 url。据我所知,使用不同的 url 访问相同的内容对 SEO 不是很友好,因为浏览器引擎认为它是重复的内容。
您应该将其配置为始终使用 www 或根本不使用它。处理文件相当容易.htaccess
。