Php $\会话仅在website.com中工作,不在www.website.com中工作

Php $\会话仅在website.com中工作,不在www.website.com中工作,php,session,Php,Session,如果我通过website.com登录,然后键入www.website.com,它不会显示我正在登录,我必须再次登录。有什么问题吗?这很正常。会话cookie应用于默认情况下发布的确切域www.website.com是与website.com不同的域 您可以将cookie的范围扩展到子域,但更好的方法是实际上只有www.website.com或website.com,并将其中一个重定向到另一个 有关将www重定向到非www的信息,请参阅 这应该可以解决: session_set_cookie_

如果我通过website.com登录,然后键入www.website.com,它不会显示我正在登录,我必须再次登录。有什么问题吗?

这很正常。会话cookie应用于默认情况下发布的确切域
www.website.com
是与
website.com
不同的域

您可以将cookie的范围扩展到子域,但更好的方法是实际上只有
www.website.com
website.com
,并将其中一个重定向到另一个

有关将
www
重定向到非www的信息,请参阅

    • 这应该可以解决:

      session_set_cookie_params(
        60 * 24,        // 24 minutes lifetime
        '/',            // path
        '.website.com', // any subdomain of website.com
        false,          // SSL not required
        true            // not accessible by JavaScript
      );
      
      session_start();
      

      问题是website.com和www.website.com不是同一个域,因此您需要将会话id cookie设置为允许在www.website.com上访问。请检查访问
      website.com
      时建立的会话cookie。如果没有前导的
      ,那么它只适用于website.com,而不适用于任何“子”版本,例如
      www.
      版本。谢谢,我该怎么做?如果您演示一下,这个答案会更好。@嘿,您想要哪种方式?我在问题中编辑了一个好答案,如果你解释一下,这个答案会更好。@Tomalak,我不反对。但是我很懒,有两个人已经回答了“为什么”作为对原始问题的评论