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

2022-08-30 19:21:43

背景:在 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)以停止条件测试cookie检查

    // 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

我是否需要更改(或未设置)网站 URL?还是有另一种潜在的方法来解决此问题?谢谢


答案 1

添加到 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


答案 2

迁移了数百个WP站点后,这里有一些想法:

如果迁移数据库:请检查数据库选项表(可能wp_options)列“option_name”,其中的值“siteurl”和“home”是否具有适用于您站点的正确“option_value”。“siteurl”是巨大的。

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

WP查找这些数据库选项以将站点序列化为域,我非常确定定义在堆栈中较低,没有任何帮助。将 wp-admin 活动视为松散耦合到前面。您可以在前面打破所有内容(完成),管理员仍将起作用。

另外 - 该网站是否/是否与通用安装/无迁移或调整一起工作?

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

(非常确定这一点)如果您移动了数据库并使用漂亮的URL,并且错过了.htaccess,那么这可能是您需要修复的全部内容。我刚刚在沙盒安装上进行了本地测试,当在option_value列中留空时,表wp_option列“option_name”值“permalink_structure”将返回到?p = 1(非永久链接)状态,并且.htaccess将被大部分绕过。


推荐