多站点设置中的不同域

时间:2019-04-04 作者:Greeso

我正在使用WordPress多站点设置设置以下结构

example.com
sub1.examples.com
example.net
请注意,这是一个单一的多站点设置,但它有两个主域和一个子域

我按照步骤described here 执行设置。

然后,添加后example.net 到网站列表,我试图转到dashboard 在管理部分。一旦我这样做了,我就会看到一个登录屏幕。当我尝试登录时,我收到以下错误

ERROR: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.
经过进一步调查,我发现this answer, 建议添加define(\'COOKIE_DOMAIN\', $_SERVER[\'HTTP_HOST\']);wp-config.php. 我做到了,现在一切都正常了。我可以登录到该网站example.net, 但有一个警告。

新问题描述如下。假设我在WordPress后端,登录到example.com, 我试着去example.net. 一旦我这样做了,我会再次看到登录屏幕以登录到example.net. 如果我转到sub1.example.com 从…起example.com.

我有以下问题:

为什么会这样?换句话说,为什么每次我尝试切换时都会出现一个新的登录屏幕example.comexample.net?

我怎样才能防止这种情况发生?我似乎不对。看来这不是解决问题的好办法。可能还有另一种更好的方法来解决此登录问题。

什么是define(\'COOKIE_DOMAIN\', $_SERVER[\'HTTP_HOST\']); 真的吗?

谢谢。

2 个回复
最合适的回答,由SO网友:Rup 整理而成

当您登录时,WordPress会在浏览器中设置一个cookie,将您标记为已验证。COOKIE\\u域设置以下范围:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#Scope_of_cookies

i、 e.浏览器只会将cookie发送回与其范围匹配的站点。i、 e。

如果您登录到示例中。com,WordPress将为您提供一个“WordPress\\u logged\\u in”cookie,作用域为示例。com

有一些插件可以解决这个问题,例如。WP Multisite SSO. 我自己还没有试过,所以不能推荐。这将是一个有趣的问题,编码自己,但这将是一个相当多的工作!

SO网友:Kakemphaton

只是想注意到插入define(\'COOKIE_DOMAIN\', $_SERVER[\'HTTP_HOST\']); 在里面wp-config.php 是我发现的唯一一个让Wordpress多站点(网络)与每个站点的独立域(Nginx)一起工作的解决方案。