Не удается войти в систему, а wp-login.php перенаправляет на wp-admin%2F&reauth=1?
У меня возникли проблемы со входом в мой сайт WordPress. Когда я пытаюсь посетить example.com/wp-admin, я вижу пустую страницу, а адресная строка меняется на:
http://example.com/wp-login.php?redirect_to=http%3A%2F%2Fmysite.com%2Fwp-admin%2F&reauth=1
Если я захожу на example.com/wp-login.php, я вижу только пустую белую страницу без каких-либо изменений в URL.
Я подтвердил, что это не проблема с моим локальным компьютером, так как такое поведение сохраняется в разных браузерах и устройствах.
Я нашел множество сообщений на форумах об этой проблеме, но ни одно не предлагает удовлетворительного решения.
Пожалуйста, помогите, так как мне срочно нужно обновить контент на сайте.
Обновление: Я включил отладку WordPress и вижу следующую ошибку
Fatal error: Cannot redeclare check_password_reset_key()
(previously declared in /home/wordpress/public_html/wp-login.php:281)
in /home/wordpress/public_html/wp-includes/user.php on line 1637
Буду благодарен за любые подсказки по исправлению этой проблемы

Не понимаю, почему это было отклонено... после удаления session_token я также использовал режим инкогнито. Мне также нужно было очистить кэш Chrome, но инкогнито помог решить проблему, показав, что часть проблемы была в браузере.
Chrome обладает безжалостным кэшированием и часто является источником подобных проблем.

Комбинация очистки куков для данного сайта И очистки кэша браузера (например, локальных файлов) сработала у меня... что, по сути, и делают приватные вкладки. Мне даже не пришлось очищать пользовательские сессии... в этом случае, когда вы вошли через приватную вкладку, вероятно, сессия в базе данных сбросилась, но в большинстве случаев это, наверное, не обязательно.

Существует множество возможных причин этой проблемы. Некоторые из них связаны с вашей базой данных. Попробуйте включить WP_DEBUG и проанализировать сообщения об ошибках.
В моём случае (именно так я наткнулся на ваш вопрос) проблема заключалась в записи токена сессии в usermeta. Я зашёл в PhpMyAdmin > wp_usermeta > и удалил значение meta_value для session_token. (Подробности здесь https://wordpress.org/support/topic/possible-fix-for-sudden-redirect-loop-at-wp-login-with-reauth1)

Я использовал запрос такого вида: `UPDATE wp_usermeta SET meta_value='' WHERE meta_key='session_tokens' AND user_id=<мой_идентификатор_пользователя>;

В моем случае session_tokens
вообще не был установлен для моего пользователя. Или, если точнее, user_id
каким-то образом изменился на случайное число. Я не имею понятия, как это произошло. Поэтому убедитесь, что в wp_usermeta действительно есть строка с вашим user_id и meta_key=session_tokens.

Огромное спасибо! Я напортачил с основным URL сайта в мультисайтовой настройке WordPress. Я мог зайти только в режиме инкогнито — удаление всех куки для моего домена и очистка кеша не помогли. Я удалил значение для session_tokens
в таблице wp_usermeta
, и это решило мою проблему :) Отлично сработано, сэр!

Когда происходит перенаправление с http://mysite
на http://mysite/
, такая ситуация неизбежна. В моём случае работает управляющий процесс httpd с несколькими виртуальными хостами. Один из них был настроен следующим образом:
<VirtualHost *:*>
ServerName mysite.com
ProxyPass "/blog" "http://bloghtml/blog/"
ProxyPreserveHost On
</VirtualHost>
Изменение "/blog"
на "/blog/"
решает проблему.

Я решил эту проблему, определив ключи безопасности в файле wp-config.php
:
define('AUTH_KEY', '');
define('SECURE_AUTH_KEY', '');
define('LOGGED_IN_KEY', '');
define('NONCE_KEY', '');
define('AUTH_SALT', '');
define('SECURE_AUTH_SALT', '');
define('LOGGED_IN_SALT', '');
define('NONCE_SALT', '');
По какой-то причине они были пустыми... Замените пустые строки на сгенерированные здесь: https://api.wordpress.org/secret-key/1.1/salt/ (спасибо Josh Rodgers)

Не случайные строки, похожие на пароли... WordPress может сгенерировать их за вас здесь: https://api.wordpress.org/secret-key/1.1/salt/

В моем случае эти значения не пустые. Стоит ли заменить их значениями из https://api.wordpress.org/secret-key/1.1/salt/ ?

У меня тоже была эта проблема, но с другим сообщением. После перепробования множества исправлений: htaccess, переименование плагинов, переименование темы, проверки на наличие пустых строк в wp-config.php — я всё ещё не мог решить проблему.
Войдя в PHPMyAdmin, я попытался оптимизировать таблицы, но получил ошибку отказа в доступе пользователя. Оказалось, что сама база данных была перегружена и затем «заблокирована» хостингом. Обнаружив главного виновника (таблицу логов Wordfence), я очистил её, подождал 30 минут, и вуаля — всё снова заработало.
Думаю, это может помочь кому-то ещё, кто полностью застрял после попыток всех остальных предложенных вариантов!

Ни один из вышеперечисленных способов мне не помог.
После включения режима отладки:
define('WP_DEBUG', true);
в файле wp-config.php
Сайт сообщал о проблемах с правами доступа для пользователя базы данных...
Что сработало в моем случае — это возврат к root-пользователю базы данных (вместо пользователя 'web' с ограниченными правами).
Очевидно, это не долгосрочное решение, но оно может помочь в вашей ситуации.

Я хотел бы внести свой вклад в сообщество, а также, поскольку эта проблема была очень раздражающей. Ни одно из решений не сработало для меня. Я не устанавливал никаких плагинов до того, как это произошло, поэтому определенно считаю, что это баг WordPress!
Мои точные ошибки: Через отладчик WP. После экрана входа появлялся белый экран с этой ошибкой.
Fatal error: Class 'PasswordHash' not found in /var/www/public_html/example.net/wp-includes/pluggable.php on line 2079
В логах ошибок Apache.
PHP Fatal error: Class 'PasswordHash' not found in /var/www/public_html/example.net/wp-includes/pluggable.php on line 2138, referer: http://example.net/wp-login.php?redirect_to=http%3A%2F%2Fexample.net%2Fwp-admin%2F&reauth=1
Как я решил проблему: 1. В базе данных я изменил пароль администратора на обычный текстовый пароль. 2. Добавил эти строки кода в pluggable.php. По сути, теперь WP распознает незахешированные пароли. Вот измененные фрагменты pluggable.php
function wp_check_password($password, $hash, $user_id = '') {
<------>global $wp_hasher;
<------>//20170713 Добавлено Стефаном
<------>$check=($hash==$password);
<------>return apply_filters('check_password', $check, $password, $hash, $user_id);
... и немного ниже
function wp_set_password( $password, $user_id ) {
<------>global $wpdb;
<------>//$hash = wp_hash_password( $password );
<------>//20170713 Изменено Стефаном
<------>$hash=$password;
Надеюсь, это поможет кому-то, потому что гугление не помогло мне.

С тех пор все работает гладко, но сегодня мне пришлось создать новый блог в моей мультиустановке, и так как скрипту необходимо добавить пользователя и его пароль, потребовалось немного больше комментирования, чтобы полностью исключить хеширование паролей. Просто чтобы вы знали.

У меня была та же проблема, но я не мог от нее избавиться даже после долгих попыток. Нашел ответ здесь http://www.wpbeginner.com/wp-tutorials/how-to-fix-wordpress-login-page-refreshing-and-redirecting-issue/. Оказалось, это просто проблема с куками - нужно очистить куки браузера и снова включить их, вот и все.

Я решил эту проблему, используя https:// для доступа к своему сайту вместо http://. Таким образом, у меня не возникало перенаправлений. https://my_website.com/admin Вы также можете изменить значения "siteurl" и "home" в таблице options через phpmyadmin в cpanel, чтобы они указывали на https. Я заметил, что это может быть связано с неправильным перенаправлением SSL.

Я столкнулся с этой проблемой после переноса моего сайта с одного сервера на другой. После импорта базы данных на новый сервер, я не мог войти в систему. На новом сервере я еще не настроил SSL-защиту сайта, поэтому мне пришлось изменить значения siteurl и home в базе данных.
Решение
- Я исправил это, зайдя в базу данных и изменив siteurl и home с
https://
наhttp://
в таблицеwp_options
.
Возможно, это поможет другим.

Попробуйте удалить строку запроса из URL (символ "?" и всё, что после него) — то есть: перейдите напрямую на wp-login.php. У меня это сработало. Я пробовал сменить пароль, изменить соли (salts), очистить meta_value для session_tokens в таблице wp_usermeta. Ничего из этого не помогло.
Извините, я знаю, что это не решает вашу проблему, так как у вас просто белый экран на wp-login.php, но, возможно, это поможет кому-то, кто, как и я, попал сюда из-за заголовка.

Только что столкнулся с той же проблемой. Ничего не помогло: очистка кеша, правка .htaccess, очистка сессий в БД, отключение плагинов через FTP и т.д. Мне удалось войти только в режиме инкогнито Chrome. После этого обычный вход всё равно не работал. Просто очистки кеша браузера оказалось недостаточно — пришлось вручную удалить все куки, связанные с доменом.
Настройки > Дополнительные настройки > Настройки контента >
В разделе "Настройки конфиденциальности" нажмите кнопку "Настройки контента"
В разделе "Cookies" нажмите кнопку "Все файлы cookie и данные сайтов"
Затем найдите свой сайт по ключевому слову в поисковой строке: Выделите свой сайт и нажмите Delete на клавиатуре.
Нажмите Готово и попробуйте снова войти на сайт (в обычном режиме, т.е. просто закройте окно в режиме инкогнито)
Если сайт уже был открыт в другой вкладке, вы получите ошибку cookie. Закройте все вкладки, откройте заново, войдите и наслаждайтесь

Эти инструкции сработали для меня => https://core.trac.wordpress.org/attachment/ticket/37071/fix-wp-login-error.patch
