Администрирование паролей пользователей Wordpress заблокировано после перемещения серверов

Предыстория: был рабочий сайт Wordpress 3.7 на olddomain.com.

Я переместил его в 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), чтобы остановить проверку условного теста

    // 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, здесь несколько соображений:

Если вы переносите БД: проверьте таблицу опций базы данных (возможно, wp_options) в столбце "имя_параметра", значение "siteurl" и "home" имеет правильную "option_value" для вашего сайта. "siteurl" огромен.

Я могу засвидетельствовать, что настройка таблицы параметров - это минимальный минимум, необходимый для переноса БД в новый домен в WP. (не будет перенаправлять, все равно будут проблемы)

WP ищет эти параметры БД для сериализации сайта в домене, и я уверен, что определения ниже в стеке и никакой помощи. Рассмотрите действия wp-admin как слабо связанные с фронтом. Вы можете сломать все (сделать это) спереди, и администратор все равно будет функционировать.

Также - сделал/работает ли сайт с общей установкой/отсутствием миграции или настройками?

Как уже упоминалось -.htaccess (отсутствует или неправильно сконфигурирован) вызовет вашу ошибку. Что касается файла.htaccess, если он используется, это dot.file, и многие операционные системы будут "игнорировать" или "делать невидимыми", поэтому приложение для копирования/вставки или FTP или подобное может не иметь.htaccess

(довольно уверен в этом). Если вы переместили БД и использовали довольно URL-адреса, и пропустили.htaccess, которые могли бы быть все, что вам нужно исправить. Я просто протестировал локально на установке песочницы, а столбец wp_option "option_name" значение "permalink_structure", когда он оставлен пустым в столбце option_value, вернется в состояние? P = 1 (не permalink), а.htaccess будет в основном обойден.

Ответ 3

Это сработало для меня.

  1. Удалить //define('COOKIE_DOMAIN', 'www.domain.com'); в вашем wp-config.php
  2. Убедитесь, что все файлы имеют формат ANSI, а не utf-8

Ответ 4

Эта ошибка также возникает при перемещении многопользовательской установки в новый домен, если вы обновляете все параметры в таблице базы данных (обычно wp_options), но забудьте изменить строку DOMAIN_CURRENT_SITE на wp-config.php:

define( 'DOMAIN_CURRENT_SITE', 'yourdomain.com' );

Ответ 5

Я испытал это из-за моего кэширующего плагина.

W3 Total Cache добавил в файл wp-config.php следующее:

define('COOKIE_DOMAIN', 'www.olddomain.com'); // Added by W3 Total Cache

Поскольку он был жестко закодирован, он не обновлялся до нового домена сайта. После удаления добавленного кода (поскольку в настоящее время я не использую плагин), я смог снова войти в систему.

Я бы проверил wp-config.php на слово "cookie", чтобы увидеть, добавил ли плагин что-то вроде этого.

Ответ 6

Я получал такую же ошибку.

Я был жестко закодирован Home и SiteURL в wp-config.php для совершенно нового сайта - никаких плагинов даже не установлен.

Проблема: у меня было место в конце URL-адреса.

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

Ответ 7

эта ошибка заставляла меня сходить с ума в последние пару дней, поэтому я подумал, исправляя ее, чтобы поделиться с вами, ребята! проблема была в том, что когда я пытался войти в мой бэкэнд Wordpress, я получил эту раздражающую ошибку cookie, так вот как я ее исправил!

  1. Перейдите на свой ftp и ваш домен.
  2. После этого перейдите в свой wp-контент
  3. Перейдите в папку тем
  4. Выберите тему, которая активна
  5. Ищите функции.php вашего teem и откройте его
  6. В конце кода вы должны увидеть закрывающий тег p> просто удалите его и очистите пространства и сохраните его!
  7. Перейдите на страницу domain.com/wp-login.php
  8. и попробуйте войти в систему, он должен быть исправлен после этого, вы можете вернуть тег туда, где он был, и сохранить его снова, что было для меня решением. Этот трюк также устраняет проблему с белой страницей в wordpress

Ура!

Ответ 8

Я был googled и пробовал все способы избавиться от этой проблемы с печеньем. Наконец я нашел два решения, которые могли бы вам помочь.

Решение 1:

YourSite/WP-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/WP-содержание/темы/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, который находится под вашей дочерней темой в текущей активной теме. Надеюсь, что это поможет вам.

Ответ 9

Предполагая, что вы работаете на платформе Unix/Linux, убедитесь, что вы скопировали файл.htaccess с исходного сервера и обновили любые ссылки на старый домен в этом файле. Он будет в корне вашего развертывания WordPress (если вы его используете).

Либо это, либо у вас может быть ссылка на ваш старый домен где-то в вашей таблице wp_options в базе данных.

Будьте предупреждены о том, что, переместившись из одного домена в другой, изображения и места размещения в сообщениях могут быть обновлены. Вы можете сделать это непосредственно непосредственно в базе данных, использовать утилиту find/replace или вручную переназначить свои изображения в своих сообщениях. Альтернативный метод для исправления ваших почтовых данных - экспортировать все ваши сообщения с вашего старого сайта (из панели администратора) - Инструменты> Экспорт> Все сообщения; затем вручную обновите URL-адрес в этом результирующем файле перед импортом на новый сайт.

Все это и многое другое описано на codex.wordpress.org. Для получения дополнительной информации см. Эту ссылку:

http://codex.wordpress.org/Changing_The_Site_URL

ВАЖНЫЕ ЗАМЕТКИ:

  1. Если вы собираетесь изменить что-либо непосредственно в базе данных, убедитесь, что вы прочитали раздел, в котором говорится о GUID

  2. Если вы используете Better WP Security, вам могут понадобиться другие вещи, но, основываясь на том, что вы описываете, я сомневаюсь, что вы его установили.

Ответ 10

У меня была та же проблема с очень похожими обстоятельствами и спецификациями.

В конце концов, попробовав всевозможные решения, предлагаемые в Интернете, я просто переименовал свою активную тему через FTP, а затем смог войти в панель управления, я переименовал свою тему назад, и все сработало, я не знаю, почему, но это может помочь кому-то исправить проблемы, которые у них есть.

Ответ 11

У меня была такая же проблема, и ничего не получилось. После обновления моего php 5.3.x до 5.4.x он отлично работает.

Ответ 12

Следующий шаг решить мою проблему

на 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-контента

object-cache.php 
advanced-cache.php
db.php

Ответ 13

Я давно создал свою установку Multisite, когда вам нужен плагин для сопоставления доменов. Поэтому у меня был файл '/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

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

Ответ 14

Я сталкивался с этой ошибкой при попытке установить сайт WordPress на localhost. Проблема была в этой строке внутри .htaccess

Редактировать заголовок Set-Cookie ^ (. *) $ $ 1; HttpOnly; Безопасный

Это предотвращает установку файлов cookie, если они не указаны на https. Просто пришлось убрать линию.