Редирект на wp-admin "redirect_to" указывает на неверный URL после миграции
У меня есть WordPress сайт, размещенный на GoDaddy, это Windows сервер (настроен web.config
) и правильно настроен .htaccess
. Сайт работал на example.com/wordpress
, так как это была тестовая разработка. Я перенес сайт на example.com
.
Я изменил URL сайта и URL WordPress на example.com
в базе данных через PhpMyAdmin и обновил структуру постоянных ссылок.
Я также обновил все поля 'content' в wp_post, чтобы изменить URL-адреса.
Проблема
Когда я пытаюсь войти в панель администратора через example.com/wp-admin
, URL отображается как
example.com/wp-login.php?redirect_to=http://example.com/wordpress/wp-admin/reauth=1
Почему это может происходить, если URL сайта и URL WordPress совпадают и соответствуют базе данных.
Дополнительные примечания
Это не проблема кэша (по крайней мере, не со стороны браузера), я пробовал разные браузеры, и большинство тестов я провожу в режиме инкогнито Chrome.
Я пробовал устанавливать update_option
для siteurl
и home
в functions.php
и:
//wp-config.php
define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');
Я также попробовал метод Relocate, описанный в Codex http://codex.wordpress.org/Changing_The_Site_URL

У меня была такая же проблема. Чтобы исправить это, мне пришлось внести изменения в базу данных. Используйте phpMyAdmin или войдите напрямую в базу данных и проверьте таблицу wp_options
. Проверьте следующие два поля: siteurl
и home
.
SELECT * FROM wp_options WHERE option_name IN ('siteurl', 'home');
Убедитесь, что эти поля содержат правильную информацию о домене. Если нет, измените их и посмотрите, что произойдет. В моем случае проблема была решена.

Мой экземпляр WordPress имеет эти поля, установленные на правильный URL, однако HTML-код на странице входа по-прежнему содержит <input type="hidden" name="redirect_to" value="http://localhost/wp-admin/">
в конце..

Вот как можно изменить записи: update wp_options set option_value = replace(option_value, "old website url", "new website url");

Я смог решить похожую проблему, используя инструмент командной строки wp
WP-CLI. Мне пришлось использовать инструмент командной строки, потому что я не мог войти в админку WordPress через браузер.
wp @mysitestage config set WP_HOME "https://stage.mysite.com/"
wp @mysitestage config set WP_SITEURL "https://stage.mysite.com/blogdir"

Я решил эту проблему, установив плагин для изменения URL входа: https://wordpress.org/plugins/wps-hide-login/
Мне также была необходима эта функция безопасности.
