移动服务器后,Wordpress管理员登录cookie阻止错误

Chr*_* B. 19 php cookies wordpress

背景:在olddomain.com上有一个有效的Wordpress 3.7站点.

我成功地将它移动到newdomain.com,并在此过程中将其添加到wp-config:

define('WP_HOME','http://newdomain.com');
define('WP_SITEURL','http://newdomain.com');
Run Code Online (Sandbox Code Playgroud)

现在当我尝试从newdomain.com/wp-admin登录时,我收到了跨浏览器错误(尽管启用了cookie并清除了现有的cookie):

ERROR: Cookies are blocked or not supported by // your browser. 
You must enable cookies to use WordPress.
Run Code Online (Sandbox Code Playgroud)

我尝试进入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);
Run Code Online (Sandbox Code Playgroud)

但这样做会让我陷入重定向循环回到管理页面:

http://myapp.com/wp-login.php?redirect_to=http%3A%2F%2Fmyapp.com%2Fwp-admin%2F&reauth=1
Run Code Online (Sandbox Code Playgroud)

我是否需要更改(或不设置)网站网址?或者是否有另一种可能的方法来解决这个问题?谢谢

max*_*ver 38

添加到wp-config.php

define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', ''); 
Run Code Online (Sandbox Code Playgroud)

原始来源http://wordpress.org/support/topic/cookie-error-site-not-letting-me-log-in

  • 这个应该加在上面`/*就是这样,停止编辑!快乐的博客。*/` (4认同)
  • 谢谢!这个解决方案对我有用......我被困了很长时间..你是个救星.. (2认同)

Mar*_*arc 25

迁移了数百个WP站点后,有几个想法:

如果迁移数据库:检查数据库选项表(可能是wp_options)列"option_name",其值为"siteurl"和"home",为您的站点指定正确的"option_value"."siteurl"是巨大的.

我可以证明,选项表调整是将数据库迁移到WP中的新域所需的最低限度.(不会导致重定向,仍会有问题)

WP查找这些数据库选项以将站点序列化为域,我非常确定堆栈中的定义较低并且没有任何帮助.将wp-admin活动视为与前端松散耦合.你可以在前面打破一切(完成它),管理员仍然可以运行.

此外 - 该网站是否/使用通用安装/没有迁移或调整?

如上所述 - .htaccess(丢失或配置错误)将导致您的错误.关于.htaccess文件,如果使用,这是一个dot.file,许多操作系统将"忽略"或"隐藏",因此复制/粘贴或FTP应用程序或类似文件可能无法携带.htaccess

(非常肯定)如果你移动了数据库并使用了漂亮的网址,并且错过了.htaccess,这可能就是你需要解决的问题.我刚刚在沙盒安装上进行了本地测试,并且在列option_value中留空时,表wp_option列"option_name"值"permalink_structure"将返回到?p = 1(非永久链接)状态,并且.htaccess将被主要绕过.

  • 真棒.将wp_options中的siteurl更改为新域解决了该问题.非常感谢 (4认同)

小智 5

这对我有用.

  1. //define('COOKIE_DOMAIN', 'www.domain.com');在你的wp-config.php中删除
  2. 确保所有文件都具有ANSI格式而不是utf-8