从昨天开始,我无法再登录Wordpress网站的仪表板。我可以登录主站点。但是,当我从主站点转到多站点设置的另一个站点的仪表板时,我会看到一个登录屏幕。当我登录时,我收到错误:
ERROR: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.
我正在使用WordPress 3.8。它在Varnish后面运行,也许这就是它造成的。我已经覆盖了wp-login.php文件。我有网络禁用所有插件。唯一暂时有用的是将以下内容添加到wp-config.php:
define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
然后,我可以转到其他站点的仪表板,而无需输入我的登录详细信息。但是,当我评论上述行时,发生了同样的错误。
我的Varnish default.vcl文件是:
backend default {
.host = "127.0.0.1";
.port = "4040";
}
backend tomcat {
.host = "127.0.0.1";
.port = "8080";
}
#Enable compression
sub vcl_recv {
if (req.http.Accept-Encoding) {
if (req.url ~ "\.(jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg)$") {
# No point in compressing these
remove req.http.Accept-Encoding;
} elsif (req.http.Accept-Encoding ~ "gzip") {
set req.http.Accept-Encoding = "gzip";
} elsif (req.http.Accept-Encoding ~ "deflate" && req.http.user-agent !~ "MSIE") {
set req.http.Accept-Encoding = "deflate";
} else {
# unknown algorithm
remove req.http.Accept-Encoding;
}
}
}
有人知道解决方案吗?感谢。
亲切的问候,
尼克
答案 0 :(得分:4)
我找到了解决问题的方法,但我不知道它是否有任何副作用。我在wp-config.php文件中添加了一行:
define('COOKIE_DOMAIN', '');
当我现在切换到另一个域(FQDN)的仪表板时,我进入了登录屏幕,登录后,我从几个域的来回切换来回保持登录状态。
答案 1 :(得分:0)
确保您已为主站点定义了正确的域:
define('DOMAIN_CURRENT_SITE', 'yourmainsite.com');
它位于wp-config.php