При переносе сайта WP почему wp-admin перенаправляет на старый сайт?

23 июл. 2014 г., 01:55:51
Просмотры: 68.6K
Голосов: 18

Я в процессе переноса сайта WP с одного хостинга на другой. Я скопировал базу данных и все файлы, создал новую базу данных и импортировал в неё старую. Затем я изменил файл wp-config. Главная страница отображается нормально, но когда я пытаюсь получить доступ к /wp-admin, меня перенаправляет обратно на старый сайт.

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

Что я упускаю в этом переходе? Как заставить сайт правильно отвечать на dev URL?

0
Все ответы на вопрос 5
2
26

Если это одиночная установка WordPress, в базе данных есть несколько записей с вашим старым доменом. В частности, siteurl и home в таблице wp_options.

Тем не менее, если URL разработки временный, вы также можете установить следующие две константы в файле wp-config.php:

define('WP_HOME', 'http://' . $_SERVER['SERVER_NAME']);
define('WP_SITEURL', WP_HOME . '/');

При условии, что WordPress установлен в корне вашего сайта.

23 июл. 2014 г. 02:02:35
Комментарии

Вам также потребуется обновить guid для каждой записи в wp_posts, если есть вложения, используя что-то вроде UPDATE wp_posts SET guid = REPLACE('<old_url>','<new_url>', guid)

Cyclonecode Cyclonecode
23 июл. 2014 г. 03:11:24

GUID не следует изменять. Подробнее здесь: http://codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note

NightHawk NightHawk
23 июл. 2014 г. 06:24:53
0

Это не большая проблема. Ваша база данных содержит все предыдущие ссылки, которые не могут быть автоматически преобразованы. Есть два типа решений для этого:

  1. В файл wp-config.php добавьте следующий код:

    define('WP_HOME', 'http://' . $_SERVER['SERVER_NAME']);
    define('WP_SITEURL', WP_HOME . '/');
  2. Измените следующий SQL, заменив "oldurl" на предыдущую ссылку, а "newurl" на текущую:

UPDATE wp_posts SET guid = replace(guid, 'oldurl','newUrl'); 

UPDATE wp_posts SET post_content = replace(post_content, 'oldurl', 'newUrl'); 

UPDATE wp_links SET link_url = replace(link_url, 'oldurl', 'newUrl'); 

UPDATE wp_links SET link_image = replace(link_image, 'oldurl', 'newUrl'); 

UPDATE wp_postmeta SET meta_value = replace(meta_value, 'oldurl', 'newUrl'); 

UPDATE wp_usermeta SET meta_value = replace(meta_value, 'oldurl', 'newUrl'); 

UPDATE wp_options SET option_value = replace(option_value, 'oldurl', 'newUrl') WHERE option_name = 'home' OR option_name = 'siteurl';

Выполните эти SQL-запросы в вашей базе данных, изменив префикс, если у вас используется что-то отличное от wp_.

27 мар. 2018 г. 19:33:49
0

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

Гораздо разумнее использовать инструменты миграции, такие как Backup Buddy или Duplicator, чтобы создать полную копию сайта, которую можно будет развернуть в новом месте с новым URL. При таком подходе у вас останутся рабочие ссылки внутри записей, пользовательские ссылки меню и т.д. Использование одного из этих инструментов также упростит публикацию ваших изменений. Просто упакуйте всё и разверните на рабочем сайте, когда закончите.

Если вы не хотите тратить время на повторную загрузку всего контента, можно перенести только базу данных с помощью инструмента вроде WP Migrate DB. Установите его на рабочем сайте, экспортируйте базу данных с новым URL и импортируйте мигрированную базу данных на тестовый сервер через phpMyAdmin или аналогичный инструмент. Жёстко прописанные ссылки в вашей теме всё равно нужно будет обновить, а также потребуется обновить .htaccess, если вы устанавливаете сайт в подпапку.

Измените строку RewriteBase на:

RewriteBase /ваша_папка/

А строку перенаправления на index.php на:

RewriteRule . /ваша_папка/index.php [L]
27 мар. 2018 г. 19:03:53
0
  1. phpMyAdmin: перейдите в таблицу wp_options, установите homeurl и siteurl в соответствии с новым URL
  2. Войдите в админ-панель wp-admin, перейдите в Настройки->Общие измените "Адрес WordPress (URL)" и "Адрес сайта (URL)"
27 мар. 2018 г. 17:08:14
0

Перед переносом сайта на другой URL необходимо изменить Адрес сайта (URL) и Адрес WordPress (URI) через административную панель.

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

Также можете обратиться к руководству Перенос WordPress

23 июл. 2014 г. 02:03:01