4

我想知道如何在同一个域 www.mysite.com 上的我的非 wordpress 网站和我的 wordpress 博客之间共享会话,这样当用户登录到我的网站时,他也登录到了博客

我在我的网站上安装了 wordpress 作为子目录,我的网站的 url 是 www.mysite.com 我访问 wordpress 像这样 www.mysite.com/wordpressBlog

在我的主站点的 user_login.php 上,我激活了

session_start();

激活 cookie 并在我的 wordpress wp_unregister_GLOBALS() 上添加

$no_unset = array('_SESSION', ...

但是什么也没有发生,当我登录到我的主站点时,我仍然需要登录到博客

事实上,我的网站和 wordpress 博客在同一个域上。我在我的网站 url 上安装了 wordpress 作为子目录,因为我的网站是 www.mysite.com 并且我像这样访问 wordpress www.mysite.com/wordpressBlog 在我的主站点的 user_login.php 上我激活了

session_start();

激活cookies并在我的wordpress wp_unregister_GLOBALS() 我添加了 $no_unset = array( '_SESSION', ...

但是什么也没有发生,当我登录到我的主站点时,我仍然需要登录到博客

4

1 回答 1

3

为了能够在两个站点之间共享会话 cookie,它们必须在相同的域名下运行(例如 mysite.com)。如果会话 cookie 的范围为mysite.com

www.mysite.com
blog.mysite.com

PS。我不建议使用 Cross Scripting hacks 来解决这个域范围问题。出于安全原因,它仅限于域。

[编辑]

我还应该指出,将您的两个子域(站点)托管在不同的服务器上是完全有效的

[编辑]

由于您使用的是非 WP 网站,因此很难为您的问题提供简洁的答案。我对您的最佳建议是在WordPress StackExchange上发帖,在那里您可能会找到以前做过此配置的人。

我相信您的问题集中在 WP 的 Cookie 范围内。编辑您的 wp-config.php 并将 COOKIE_DOMAIN 设置为使用 "" 可能有助于解决此 WordPress StackExchange 帖子中提到的问题。

一些帖子谈到完全删除此设置。在任何情况下,您都需要一种调试 HTTP 会话的方法,以查看使用哪个范围发送的 cookie,这就是我推荐 FireBug 的原因。在任何情况下,您仍然需要重新编码您的非 WP 网站以识别 WP cookie,因此了解正在发生的事情很重要。

我确实遇到了关于多站点域映射的另一篇文章,这可能有助于您的知识,但这仅涉及 WP 站点,因此不完全是您所需要的。

于 2012-07-06T08:41:12.833 回答