WP多站点登录在一个子站点上不起作用。可能是Cookie/历史记录问题?

时间:2016-02-25 作者:DACrosby

我有一个带有子域的WordPress网络设置,登录时遇到问题。起初我以为这是我正在开发的自定义插件的问题,但即使禁用了它(以及所有插件、自定义主题),问题仍然存在。

我在网站页面(site3.example.com/testing)上有WP登录表单-用户需要登录才能访问测试页面。他们可以通过wp admin登录,但我不希望他们访问admin,因此他们会被重定向到测试页面。The issue is, 提交注册表单后,它们将被简单地发送回未登录的同一页面。未创建任何错误消息,我已验证登录凭据是否正确。

我认为这个问题源于我的插件。它使用所有来自site2的用户凭据。实例com的想法是将所有插件内容保存在一个WP站点中,并将受限部分扩展到site3。为了让登录以这种方式工作,我设置define(\'COOKIE_DOMAIN\', false); 在wp配置中。php-建议这样做吗?现在,即使禁用了插件,cookie或历史记录也可能与登录冲突?

也值得注意;我的主站点位于主站点上。ezample。com和我的子站点是site2。ezmaple。com等。不是默认的{子域}。{主域}结构。这是因为我的例子。come站点不在WordPress中,所以WP需要不覆盖它。(我通过手动更新数据库中的wp\\u博客链接做到了这一点-效果很好,除非这可能是这个奇怪问题的原因)

管理员和其他角色的登录在彼此的WP网络站点上都可以正常工作,但培训师却不行,因为他们被重定向到site3。

有趣的是,在一个清晰的历史记录、空缓存浏览器中,一切都可以正常工作。Ctrl+F5硬刷新无法完成此操作,它需要一个全新的浏览器会话。当然,并不是我所有的用户都想这么做,所以我正在寻找可能的方法来在网站本身编写修复程序。

3 个回复
SO网友:DACrosby

这似乎是一个饼干问题。背景define(\'COOKIE_DOMAIN\', \'\');define(\'COOKIE_DOMAIN\', false); 看起来工作正常,但用户也存储了旧的cookie,因此WordPress在cookie中看到了多个登录凭据,并重定向到wp登录。php?reauth=1,强制新登录。

我正在尝试重新设置cookie,使其过期,但由于它是一个稍微不同的域字符串,我无法?不知道为什么。。

因此,解决方案似乎是让用户清除本地cookie。现在我也在使用一个可能更清晰的文档define(\'COOKIE_DOMAIN\', \'.example.com\');.

SO网友:call0fcode

这里发生的事情是,许多浏览器现在阻止第三方cookie(来自另一个域的cookie)。

因此,如果您登录到WordPress的multisite admin(比方说multisite.example.com),您将保存它的cookie(PHP cookie\\u DOMAIN常量定义为multisite.example.com),如果您尝试登录子网站1。实例com时,浏览器拒绝为子项1使用保存的cookie。实例com,因为它是;来自第三方网站;。

The solution:

您可以在wp config中设置PHP常量。php是通配符(define(\'COOKIE_DOMAIN\', \'.example.com\');) 或者干脆让它空着define(\'COOKIE_DOMAIN\', \'\');.

第二步是清除相关站点的cookie,然后在两个站点上的登录应按预期工作=)

SO网友:Martin from WP-Stars.com

奇怪的是,我(在多个多站点上)将SUBDOMAIN\\u INSTALL设置为false。老实说,我没有时间进一步调查为什么。。。

define(\'SUBDOMAIN_INSTALL\', false);

相关推荐

有没有办法让客户在不调用wp-login.php的情况下注销?

我正在使用woo commerce。注销URL不同,其中包括“customer logout”。实际上,它再次重定向到“wp登录”。php’使注销过程成功。我的问题是,当Woo commerce不调用“wp登录”时。php’用于登录,为什么它需要注销?我知道,至少5年来,这一问题已经被问了好几次,但没有直接的答案。我正在管理区使用htaccess密码锁。使用此功能,任何新/现有客户都可以注册和登录,而不会出现任何问题。但是,当客户注销时,由于wp登录。php被调用,它要求htaccess用户名和密码。这意