Вопрос или проблема
Я клонировал сайт example.com на свой собственный сервер разработки, назвав его example.mydomain.com. Он отображается нормально, пока я использую порт 8080 (обходя мой сервер varnish).
Я могу успешно войти на страницу wp-admin
на example.com, но не могу попасть на страницу example.mydomain.com/wp-admin – он перенаправляет на главную страницу example.com.
Подозревая, что моя настройка varnish может быть неисправна, я посетил example.mydomain.com:8080/wp-admin и был предоставлен с формой для входа.
Однако, вводя учетные данные там, я вхожу в и перенаправляюсь на example.com/wp-admin/ – рабочий сайт. Я даже посмотрел на строку запроса, которая выглядит так: http://example.myserver.com:8080/wp-login.php?redirect_to=http%3A%2F%2Fexample.myserver.com%3A8080%2Fwp-admin%2F&reauth=1 – которая, кажется, должна делать правильные вещи, но нет удачи.
Я сделал полный поиск текста в кодовой базе, ища места, где может быть жестко закодировано имя сервера, и не нашел ничего очевидного (кроме некоторых ссылок на изображения в CSS).
Поэтому я думаю, может быть, есть какие-то настройки конфигурации, сохраненные в базе данных. Но я понятия не имею, где искать.
Проверьте файл wp-config.php
.
Найдите эти две строки в вашем wp-config.php
(или добавьте их в конце, если их там нет) и убедитесь, что “example.com” является правильным расположением вашего сайта.
define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');
Также в базе данных проверьте таблицу wp_options
, проверьте эти два option_name; siteurl
и home
.
Попробуйте изменить URL в wp_options в базе данных: https://www.hostinger.co.uk/tutorials/wordpress/how-to-change-wordpress-urls-in-mysql-database-using-phpmyadmin
.
Ответ или решение
Когда вы клонировали ваш сайт с адреса example.com
на ваш сервер разработки с именем example.mydomain.com
, вы столкнулись с проблемой перенаправления на старый сайт при попытке входа в админ панель wp-admin
. Это распространенная проблема, с которой сталкиваются многие разработчики при клонировании сайтов, сопряженная с неправильными настройками URL.
Теория (азы проблемы):
Когда вы клонируете сайт WordPress, в базе данных все еще могут оставаться старые ссылки на ваш основной (продакшн) сайт. WordPress полагается на значения, содержащиеся в базе данных, в частности, на таблицу wp_options
, где указываются параметры siteurl
и home
. Они определяют базовый URL структуры сайта и домашнюю страницу соответственно. Если эти значения не обновлены в соответствии с новым расположением сайта, могут возникать проблемы с перенаправлениями, такие как у вас.
Пример (демонстрация проблемы):
Вы упомянули, что при попытке входа через example.mydomain.com:8080/wp-admin
всё равно происходит перенаправление на example.com
. Это связано с тем, что после успешной аутентификации WordPress использует siteurl
для определения, куда нужно перенаправить пользователя. Если этот параметр всё еще указывает на example.com
, перенаправление произойдет на старый URL.
Применение (как исправить ситуацию):
-
Проверка и правка настроек в
wp-config.php
:Откройте файл
wp-config.php
, который находится в корне вашей установки WordPress. Проверьте, есть ли в нем строки:define('WP_HOME','http://example.mydomain.com:8080'); define('WP_SITEURL','http://example.mydomain.com:8080');
Если таких строк нет, добавьте их, чтобы они указывали на ваш текущий сайт разработки.
-
Обновление базы данных:
Вам необходимо внести изменения в базу данных через инструмент, такой как phpMyAdmin или через консоль MySQL:
- Подключитесь к базе данных, используемой клонированным сайтом.
- Найдите таблицу
wp_options
. - Обновите значения
siteurl
иhome
так, чтобы они указывали наhttp://example.mydomain.com:8080
.
-
Дополнительные проверки:
- Убедитесь, что на сервере нет кэширования, которое может замещать ваши изменения (например, Varnish).
- Перепроверьте наличие жестко закодированных ссылок в темах и плагинах. Возможно, они также ссылаются на старый домен.
-
Использование плагинов для поиска и замены:
Есть плагины, например, Better Search Replace, которые могут помочь вам найти и заменить все вхождения старого домена
example.com
наexample.mydomain.com
во всей базе данных. -
Очистка кеша:
После внесения всех изменений рекомендуется очистить кэш вашего браузера и сервера, дабы подтвердить, что изменения вступили в силу.
Заключительно, важно проверять ссылки и ссылки на изображения, чтобы ничего не указывало на старый сайт, это решит проблему перенаправления и обеспечит корректную работу страницы администрирования на вашем сервере разработки. Подходите к этому процессу внимательно, поскольку ошибка может повлиять на работоспособность вашего клона сайта.