Администрирование паролей пользователей 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 будет в основном обойден.
Ответ 2
добавить в 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
Ответ 3
Это сработало для меня.
- Удалить
//define('COOKIE_DOMAIN', 'www.domain.com');
в вашем wp-config.php - Убедитесь, что все файлы имеют формат 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, так вот как я ее исправил!
- Перейдите на свой ftp и ваш домен.
- После этого перейдите в свой wp-контент
- Перейдите в папку тем
- Выберите тему, которая активна
- Ищите функции.php вашего teem и откройте его
- В конце кода вы должны увидеть закрывающий тег p> просто удалите его и очистите пространства и сохраните его!
- Перейдите на страницу domain.com/wp-login.php
- и попробуйте войти в систему, он должен быть исправлен после этого, вы можете вернуть тег туда, где он был, и сохранить его снова, что было для меня решением. Этот трюк также устраняет проблему с белой страницей в 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
ВАЖНЫЕ ЗАМЕТКИ:
-
Если вы собираетесь изменить что-либо непосредственно в базе данных, убедитесь, что вы прочитали раздел, в котором говорится о GUID
-
Если вы используете 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. Просто пришлось убрать линию.