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


14

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

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

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

该站点使用其原始域名加载,但是当我尝试登录到domainname.com/wp-admin(使用全新的多站点的网络管理员用户凭据)时,出现错误消息:

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

Cookie 在Chrome 启用。

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

define('COOKIE_DOMAIN', false);

但问题仍然存在。

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

帮助表示赞赏。



感谢@bueltge,尝试添加,define('COOKIE_DOMAIN', false);但无法登录到具有其自己域的子站点-它会循环回到相同的登录屏幕。
史蒂夫(Steve)

@Steve您应该尝试具体说明答案的内容,并将其设置为空字符串,即define('COOKIE_DOMAIN', '');。布尔值false与空字符串的含义相同或''不同,具体取决于应用程序。
博斯科

MU,您是说您正在使用域映射插件吗?谢谢。
Greeso

没有@Greeso,使用内置的网站URL功能。
史蒂夫(Steve)

Answers:


22

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

然后在wp-config.php文件中设置以下内容:

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

另外,您可以在这里签出答案

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');

如果仍然失败,请阅读此答案或联系您的服务器支持,服务器中可能存在配置问题。


嗨,斯科特。在另一个MU站点上也出现了类似的问题。我在上添加了上述常量wp-config.php,但是在另一个MU网站上却childsitedomain.com/wp-login.php产生了错误The constant "COOKIE_DOMAIN" is defined (probably in wp-config.php). Please remove or comment out that define() line.关于如何解决这种情况的任何想法?
史蒂夫(Steve)

如果我注释掉该声明,则登录到子站点后会收到错误消息:ERROR: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.
Steve

我在一个新问题中提出了这个问题
史蒂夫

7

使用WordPress版本4.9.4。

我遇到了Cookie错误,并浏览了各种帮助选项,最终通过混合使用Scott的修复程序解决了它:

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

一)编辑出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. */

3

经过数小时的工作,从字面上看,终于可以通过执行以下操作在AWS Lightsail Bitnami多站点Wordpress(WordPress 5.0.4)实例上解决此问题:

  1. 确保WPMU域映射插件已禁用
  2. 编辑/opt/bitnami/apps/wordpress/htdocs/wp-config.php ...

    一种。添加以下内容:

     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

从v4.5开始,域映射功能已包含在WordPress Multisite中。如果您使用的是旧版本,则将需要WordPress MU域映射插件。

因此,似乎将WPMU域映射插件不必要地包含在AWS Lightsail Bitnami Multisite软件包中。


谢谢你!它对我有用,而没有禁用WPMU域映射插件。我也没有在任何地方找到SUNRISE,因此也不必对此发表评论。
君主瓦迪亚

2

我刚刚对子域多站点的类似问题进行了故障排除。

带有:

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

该网站仍然抛出Cookie错误,并且在某些情况下尝试了以上建议的方法.........

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

这导致在访问子站点时删除引用“ COOKIE_DOMAIN”的定义时出现了另一个错误。

最后,在确保将它们都定义在多站点网络信息上方之后,我才能够登录

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

尝试确保它们均已定义。我希望这有帮助。


为了澄清以上内容,似乎只需要define('COOKIE_DOMAIN','');
鲁本·阿波里那

1

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

/ * define('SUNRISE','on'); * /
define('COOKIE_DOMAIN',$ _SERVER ['HTTP_HOST']);
define('COOKIE_DOMAIN','');

然后,我看不到以下错误消息:

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

登录也开始工作。


1

所以我也遇到了这个问题,遇到了很多解决方案,例如这里提到的解决方案,但是它们没有用。

所做的只是将以下内容添加到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);

张贴在这里,这样其他人就可以找到它,并且花费比我更少的时间将头撞在桌子上。


0
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-config。看起来它被硬编码为特定站点,并且没有让其他域起作用-仅子域。很好的答案在这里。


0

我也遇到了这个问题,但我没有做任何帮助。在Microsoft Edge中进行了尝试,但未收到错误。

因此,至少就我而言,这是由Google Chrome引起的。


0

奇怪的是,将SUBDOMAIN_INSTALL设置为false对我(在多个站点上)起作用。老实说,我没有时间进一步调查原因...

define('SUBDOMAIN_INSTALL', false);


0

我而言,此问题已解决。我尚未为新域名完全设置WordPress。我创造了我的网站subdomain.domain.com 然后我想继续作为newdomain.com超过subdomain.domain.com 这需要

  1. WordPress 网络>管理>网站,将网站更改为新名称(我已经完成,网站正在运行)
  2. WordPress 网络>管理>设置>域,在站点ID中添加新名称,并在主域上勾选是(以表明此名称是主名称)。要查找站点ID,您可以将鼠标悬停在网络>管理员>站点上,该站点将显示您正在使用的站点ID。希望这可以帮助尝试登录“祝福” SamTapsell的任何人获取Cookie时被阻止或不支持的消息

0

在wp-config.php中添加以下内容后,我能够解决此问题。参考

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 ) );

-1

请尝试将以下内容添加到您的wp-config.php文件中

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

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

进行更改后,我无法登录任何网站,包括主网站。
史蒂夫·
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.