我有一个带有子域的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硬刷新无法完成此操作,它需要一个全新的浏览器会话。当然,并不是我所有的用户都想这么做,所以我正在寻找可能的方法来在网站本身编写修复程序。
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);