背景:在olddomain.com上有一个有效的Wordpress 3.7站点。
我已成功将其移至newdomain.com,并在此过程中将其添加到wp-config:
define('WP_HOME','http://newdomain.com');
define('WP_SITEURL','http://newdomain.com');
现在,当我尝试从newdomain.com/wp-admin登录时,我遇到了跨浏览器错误(尽管启用了Cookie并清除了现有Cookie):
ERROR: Cookies are blocked or not supported by // your browser.
You must enable cookies to use WordPress.
我尝试进入wp-login.php并注释掉以下行(744-747)以停止条件testcookie检查
// If cookies are disabled we can't log in even with a valid user+pass
if ( isset($_POST['testcookie']) && empty($_COOKIE[TEST_COOKIE]) )
$user = new WP_Error('test_cookie', __("<strong>ERROR</strong>: Cookies are blocked or not supported by // your browser. You must <a href='http://www.google.com/cookies.html'>enable cookies</a> to use WordPress."));
else
$user = wp_signon('', $secure_cookie);
但这样做会让我陷入重定向循环回到管理页面:
http://myapp.com/wp-login.php?redirect_to=http%3A%2F%2Fmyapp.com%2Fwp-admin%2F&reauth=1
我是否需要更改(或不设置)网站网址?或者是否有另一种可能的方法来解决这个问题?谢谢
答案 0 :(得分:34)
添加到wp-config.php
define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
原始来源http://wordpress.org/support/topic/cookie-error-site-not-letting-me-log-in
答案 1 :(得分:23)
迁移了数百个WP网站后,有几点想法:
如果要迁移数据库:请检查数据库选项表(可能是wp_options)列“option_name”,其值“siteurl”和“home”为您的站点指定了正确的“option_value”。 “siteurl”很大。
我可以证明,选项表调整是将数据库迁移到WP中的新域所需的最低要求。 (不会导致重定向,仍会有问题)
WP查找这些数据库选项以将站点序列化到域,我非常确定堆栈中的定义较低并且没有任何帮助。将wp-admin活动视为与前端松散耦合。你可以在前面打破一切(完成它),管理员仍然可以运作。
此外 - 该网站是否/使用通用安装/没有迁移或调整?
如上所述 - .htaccess(丢失或配置错误)将导致您的错误。关于.htaccess文件,如果使用,这是一个dot.file,许多操作系统将“忽略”或“隐藏”,因此复制/粘贴或FTP应用程序或类似文件可能无法携带.htaccess
(非常肯定)如果您移动了数据库并使用了漂亮的网址,并且错过了.htaccess,这可能是您需要修复的全部内容。我刚刚在沙盒安装上本地测试,而表wp_option列“option_name”值“permalink_structure”在列option_value中留空时将返回到?p = 1(非永久链接)状态,而.htaccess将被大部分绕过。
答案 2 :(得分:5)
这对我有用。
//define('COOKIE_DOMAIN', 'www.domain.com');
答案 3 :(得分:4)
如果更新数据库表上的所有选项(通常为wp_options
),将多站点安装移动到新域时也会发生此错误,但忘记更改DOMAIN_CURRENT_SITE
上的wp-config.php
行}:
define( 'DOMAIN_CURRENT_SITE', 'yourdomain.com' );
答案 4 :(得分:3)
由于我的缓存插件,我经历过这种情况。
W3 Total Cache已将以下内容添加到我的wp-config.php文件中:
define('COOKIE_DOMAIN', 'www.olddomain.com'); // Added by W3 Total Cache
由于它是硬编码的,因此它没有更新到新的站点域。删除添加的代码后(因为我目前没有使用插件),我能够再次登录。
我会检查wp-config.php中的“cookie”一词,看看插件是否添加了这样的内容。
答案 5 :(得分:3)
我收到同样的错误。
我在wp-config.php中为一个全新的网站编写了Home和SiteURL的硬编码 - 甚至没有插件安装。
问题:我在网址末尾有一个空格。
define('WP_HOME','http://100.000.000.01/~acctname/wp ');
define('WP_SITEURL','http://100.000.000.01/~acctname/wp ');
删除空格修复了此错误。
define('WP_HOME','http://100.000.000.01/~acctname/wp');
define('WP_SITEURL','http://100.000.000.01/~acctname/wp');
答案 6 :(得分:3)
这个错误让我在最近几天疯狂,所以我想在修好它与你们分享之后!问题是,当我试图登录我的wordpress后端时,我得到了这个烦人的cookie错误,所以这就是我修复它的方法!
干杯!
答案 7 :(得分:2)
我一直用Google搜索&amp;尝试各种方法摆脱这个cookie问题。最后,我找到了两个可以帮助你的解决方案。
解决方案1:
yoursite /可湿性粉剂的login.php
评论第770-773行
代码
if ( isset($_POST['testcookie']) && empty($_COOKIE[TEST_COOKIE]) )
$user = new WP_Error('test_cookie', __("<strong>ERROR</strong>: Cookies are blocked or not supported by your browser. You must <a href='http://www.google.com/cookies.html'>enable cookies</a> to use WordPress."));
else
$user = wp_signon('', $secure_cookie);
它可能适用于某些网站,某些网站可能会显示空白页面。此外,不推荐这样做,因为在wordpress更新后可能会覆盖此文件,因此尝试第二个解决方案。
解决方案2:
yoursite /可湿性粉剂内容/主题/ yourthemeFolder / functions.php的
放置以下代码。
setcookie(TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN);
if ( SITECOOKIEPATH != COOKIEPATH )
setcookie(TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN);
更新主题也可能会丢失这些更改,因此请将此代码放在另一个functions.php中,该文件位于当前活动主题的子主题文件夹下。希望对你有帮助。
答案 8 :(得分:1)
假设您在Unix / Linux类型平台上运行 - 请确保您已从原始服务器复制.htaccess文件并更新该文件中对旧域的任何引用。它将在您的wordpress部署的根目录中(如果您正在使用它)。
或者您可以在数据库的wp_options表中的某个位置引用旧域。
预先警告,当您从一个域移动到另一个域时,帖子中的图像和媒体位置可能需要更新。您可以直接在数据库中自己执行此操作,使用查找/替换实用程序或在帖子中手动重新指向您的图像。修复发布数据的另一种方法是从旧网站(从管理面板中)导出所有帖子 - 工具&gt;出口&gt;所有帖子;然后在导入新站点之前手动更新该结果文件中的URL。
codex.wordpress.org 涵盖了所有这些以及更多内容。有关更多信息,请参阅此链接:
http://codex.wordpress.org/Changing_The_Site_URL
重要说明:
如果您要直接在数据库中修改任何内容,请务必阅读有关GUID的部分
如果您使用的是Better WP Security,还有其他可能需要做的事情,但根据您所描述的内容,我怀疑您是否安装了它。
答案 9 :(得分:1)
我在非常相似的情况和规范中遇到了同样的问题。
最后在网上尝试了各种不同的解决方案之后,我只是通过FTP重命名了我的活动主题然后能够登录仪表板,我重新命名了我的主题并且一切正常,我不知道为什么但它可能帮助某人解决他们遇到的问题。
答案 10 :(得分:1)
我遇到了同样的问题但没有任何作用。将我的php 5.3.x升级到5.4.x后,它可以正常工作。
答案 11 :(得分:0)
以下步骤解决我的问题
on wp-config.php
//define('WP_CACHE', true); // Added by W3 Total Cache Block this line
//define("COOKIE_DOMAIN", "www.domain.com"); Block this line
从wp-content
中删除以下文件object-cache.php
advanced-cache.php
db.php
答案 12 :(得分:0)
我很久以前在需要域映射插件时创建了我的多站点安装。所以我有文件'/wp-content/sunrise.php'
并且在wp-config define( 'SUNRISE', 'on' );
中它已经正常工作,直到最近更新到WordPress。
我在debug.log中查看了这些错误:
Undefined index: HTTP_HOST in ../public_html/wp-content/sunrise.php on line 10
Undefined index: HTTP_HOST in ../public_html/wp-includes/ms-settings.php on line 57
所以我删除了日出文件和wp-config日出定义,并将@ max4ever / @ duck_boy的cookie定义添加到wp-config文件中:
define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
解决了这个问题。我现在可以登录!!注意:我尝试了这个定义,它也运行良好。取自Multisite Setup Guide
define( 'COOKIE_DOMAIN', $_SERVER[ 'HTTP_HOST' ] );
答案 13 :(得分:0)
当我尝试在localhost上安装wordpress网站时遇到此错误。问题是.htaccess中的这一行
标题编辑Set-Cookie ^(。*)$ $ 1; HttpOnly;安全
如果未在https上设置cookie,它将阻止设置cookie。只需删除该行即可。
答案 14 :(得分:0)
我已经找到了很好的解决方案
对于此错误,可能有以下解决方案
查看本文:https://www.scratchcode.io/cookies-are-blocked-or-not-supported-by-your-browser/