网络站点拥有自己域名的多站点中的Cookie

时间:2017-03-13 作者:Steve

我决定将几个独立的Wordpress网站集成到一个多站点安装中。

我创建了一个带有子目录的全新多站点安装,创建了一个带有子目录URL的MU网络站点,并从原始独立站点导出了内容,然后将该内容导入到子目录MU站点。

然后,我从cPanel中删除了原来的独立站点,并将MU站点的域名设置为原来的域名。

该站点加载其原始域名,但当我尝试登录到域名时。com/wp admin(使用全新的multisite的网络管理员用户凭据),我收到一个错误:

错误:浏览器阻止或不支持Cookie。您必须启用Cookie才能使用WordPress。

Chrome中启用了Cookie。

我尝试将以下内容添加到wp-config.php:

define(\'COOKIE_DOMAIN\', false);
但问题仍然存在。

如果我使用WP Migrate DB Pro将独立网站拉入MU子目录站点,然后从cPanel中删除独立站点,然后将MU子目录站点的URL设置为原始独立站点的域名,则会出现相同的问题。该网站的前端加载良好,我只是无法登录到管理员。

感谢您的帮助。

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

首先清除浏览器缓存(包括cookie)+缓存插件中的服务器缓存等。

然后在wp-config.php 文件:

define(\'ADMIN_COOKIE_PATH\', \'/\');
define(\'COOKIE_DOMAIN\', \'\');
define(\'COOKIEPATH\', \'\');
define(\'SITECOOKIEPATH\', \'\'); 
此外,您还可以签出answer from HERE:

define(\'WP_ALLOW_MULTISITE\', true);
define(\'MULTISITE\', true);
define(\'SUBDOMAIN_INSTALL\', false);
define(\'DOMAIN_CURRENT_SITE\', \'your-domain.com\');
define(\'PATH_CURRENT_SITE\', \'/\');
define(\'SITE_ID_CURRENT_SITE\', 1);
define(\'BLOG_ID_CURRENT_SITE\', 1);
define(\'SUNRISE\', \'on\');
如果仍然失败,那么read this answer 或者联系您的服务器支持,服务器中可能存在配置问题。

SO网友:user140609

使用WordPress版本4.9.4。

我发现了cookie错误,并查看了各种帮助选项,最终通过使用Scott的修复程序解决了它:

注意:我没有进行任何cookie缓存清除

a) 正在编辑输出sunrise.php 线路输入wp-config.php (我使用本机域映射,因此删除了我所做的MU插件安装更改)

b) 调整了我的wp-config.php

/* Multisite */

define(\'WP_DEBUG\', false);

define( \'WP_ALLOW_MULTISITE\', true ); 

define(\'MULTISITE\', true);
define(\'SUBDOMAIN_INSTALL\', true);
define(\'DOMAIN_CURRENT_SITE\', \'www.mysite.com.au\');
define(\'PATH_CURRENT_SITE\', \'/\');
define(\'SITE_ID_CURRENT_SITE\', 1);
define(\'BLOG_ID_CURRENT_SITE\', 1);
/* define( ‘COOKIE_DOMAIN’, $_SERVER[ ‘HTTP_HOST’ ] ); */

define(\'ADMIN_COOKIE_PATH\', \'/\');
define(\'COOKIE_DOMAIN\', \'\');
define(\'COOKIEPATH\', \'\');
define(\'SITECOOKIEPATH\', \'\');

/* That\'s all, stop editing! Happy blogging. */

SO网友:George Drew

经过数小时的故障排除,我终于在AWS Lightsail Bitnami Multisite Wordpress(Wordpress 5.0.4)实例上通过执行以下操作解决了此问题:

确保WPMU域映射插件已禁用,请编辑/opt/bitnami/apps/wordpress/htdocs/wp config。php。。。

a、 添加以下内容:

 define(\'ADMIN_COOKIE_PATH\', \'/\');
 define(\'COOKIE_DOMAIN\', \'\');
 define(\'COOKIEPATH\', \'\');
 define(\'SITECOOKIEPATH\', \'\');

 /* That\'s all, stop editing! Happy blogging. */
b.注释:

// define(\'SUNRISE\', \'on\');
更改后,登录成功-无错误。谢谢大家的意见。如果不是因为这个,我还是会挠头的。

我在这里找到了答案:

https://docs.bitnami.com/aws/apps/wordpress-multisite/configuration/configure-wordpress-multisite

domain mapping functionality is included in WordPress Multisite since v4.5. 如果您使用的是旧版本,则需要WordPress MU域映射插件。

因此,似乎WPMU域映射插件不必要地包含在AWS Lightsail Bitnami多站点包中。

SO网友:Ruben Apolinar

我刚刚解决了子域多站点的一个类似问题。

使用:

define(\'COOKIE_DOMAIN\', $_SERVER[\'HTTP_HOST\']);
该网站仍在抛出cookie错误,在某些情况下尝试上述建议。。。。。。。。。

define(\'ADMIN_COOKIE_PATH\', \'/\');
define(\'COOKIE_DOMAIN\', \'\');
define(\'COOKIEPATH\', \'\');
define(\'SITECOOKIEPATH\', \'\'); 
这导致在访问子网站时删除引用“COOKIE\\u DOMAIN”的定义时出现不同的错误。

最后,在确保这两个都是在多站点网络信息上方定义的之后,我才能够登录

define(\'COOKIE_DOMAIN\', $_SERVER[\'HTTP_HOST\']);
define(\'COOKIE_DOMAIN\', \'\');
尝试确保两者都已定义。我希望这有帮助。

SO网友:Joone Hur

我注释掉了define(\'SUNRISE\',\'on\');

/* define(\'SUNRISE\', \'on\'); */
define(\'COOKIE_DOMAIN\', $_SERVER[\'HTTP_HOST\']);
define(\'COOKIE_DOMAIN\', \'\');
然后,我没有看到以下错误消息:

ERROR: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.
登录也开始工作。

SO网友:ronaut

所以我也遇到了这个问题,遇到了很多像这里提到的解决方案,但都不起作用。

所做的工作只是将以下内容添加到wp config中的多站点配置中:

define(\'COOKIE_DOMAIN\', false);
因此,wp config中的部分如下所示:

define( \'WP_ALLOW_MULTISITE\', true );
define(\'MULTISITE\', true);
define(\'SUBDOMAIN_INSTALL\', true);
define(\'DOMAIN_CURRENT_SITE\', \'your-site.com\');
define(\'PATH_CURRENT_SITE\', \'/\');
define(\'SITE_ID_CURRENT_SITE\', 1);
define(\'BLOG_ID_CURRENT_SITE\', 1);
define(\'COOKIE_DOMAIN\', false);
张贴在这里,以便其他人可以找到它,并花费比我更少的时间在他们的办公桌上。

SO网友:Andy

define(\'MULTISITE\', true);
define(\'SUBDOMAIN_INSTALL\', true);
//define(\'DOMAIN_CURRENT_SITE\', \'masterdigitalservices.com\');
//define(\'PATH_CURRENT_SITE\', \'/\');
//define(\'SITE_ID_CURRENT_SITE\', 1);
//define(\'BLOG_ID_CURRENT_SITE\', 1);
这是我的新wp配置。看起来它被硬编码为一个特定的站点,不允许其他域工作——只允许子域工作。这里有很好的答案。

SO网友:snake

我也有这个问题,但我所做的一切都无济于事。在Microsoft Edge中进行了尝试,但没有收到错误。

因此,至少在我的情况下,这只是谷歌浏览器造成的问题。

SO网友:Martin from WP-Stars.com

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

define(\'SUBDOMAIN_INSTALL\', false);

SO网友:sam tapsell

THIS FIXED IT FOR ME我没有为新域名完全设置WordPress。我已经创建了我的站点子域。领域com之后,我想继续成为newdomain。子域上的com。领域com这是必需的

将站点更改为新名称(我已经这样做了,站点正在工作)

  • WordPress网络>管理>设置>域,在站点ID中添加新名称,并为主域勾选“是”(表示此名称为主名称)。要查找站点ID,您可以将鼠标悬停在网络管理站点上,该站点将显示您正在使用的站点ID。希望这能帮助任何试图登录Best wishesSamTapsell时收到被阻止或不受支持的Cookie消息的人

  • SO网友:Baga

    在wp config中添加以下内容后,我能够解决该问题。php。Reference

    define( \'COOKIEPATH\', preg_replace( \'|https?://[^/]+|i\', \'\', get_option( \'home\' ) . \'/\' ) );
    define( \'SITECOOKIEPATH\', preg_replace( \'|https?://[^/]+|i\', \'\', get_option( \'siteurl\' ) . \'/\' ) );
    define( \'ADMIN_COOKIE_PATH\', SITECOOKIEPATH . \'wp-admin\' );
    define( \'PLUGINS_COOKIE_PATH\', preg_replace( \'|https?://[^/]+|i\', \'\', WP_PLUGIN_URL ) );
    

    SO网友:David Najman

    我解决了这个问题:

    在wp config中更改DOMAIN\\u CURRENT\\u站点的设置。php收件人:

     define(\'DOMAIN_CURRENT_SITE\', $_SERVER[\'HTTP_HOST\']);
    
    因此,我的设置如下:

    define( \'WP_ALLOW_MULTISITE\', true );
    define(\'MULTISITE\', true);
    define(\'SUBDOMAIN_INSTALL\', true);
    define(\'DOMAIN_CURRENT_SITE\', $_SERVER[\'HTTP_HOST\']);
    define(\'PATH_CURRENT_SITE\', \'/\');
    define(\'SITE_ID_CURRENT_SITE\', 1);
    define(\'BLOG_ID_CURRENT_SITE\', 1);
    
    然后我可以登录url上的所有多站点网站,例如web1。实例com/wp管理员或web2。实例com/wp管理员。

    SO网友:Dean Jansen

    请尝试将以下内容添加到您的wp配置中。php文件

    测试之前,还要从浏览器中删除所有cookie

    define( \'COOKIE_DOMAIN\', $_SERVER[ \'HTTP_HOST\' ] );