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

16

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

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

Чего мне не хватает в этом переходе? Как заставить сайт правильно отвечать на URL-адрес разработчика?

FMZ
источник

Ответы:

22

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

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

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

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

NightHawk
источник
Вам также необходимо обновить guidдля каждого wp_postsв случае каких-либо вложений, используя что-то вродеUPDATE wp_posts SET guid = REPLACE('<old_url>','<new_url>', guid)
Cyclonecode
2
GUID не должен быть изменен. Подробнее читайте здесь: codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note
NightHawk
4

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

  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_.

Аакаш Бхагат
источник
2

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

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

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

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

RewriteBase /yourfolder/

И строка, которая перенаправляет на ваш index.php к:

RewriteRule . /yourfolder/index.php [L]
Шон Мишо
источник
0

Вы должны изменить адрес сайта (URL) и адрес WordPress (URI) через панель администратора, прежде чем переходить на другой URL.

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

Вы также можете ссылаться на перемещение WordPress

Laxmana
источник
0
  1. phpMyAdmin: перейти к wp_optionsнабору таблиц homeurlи siteurlкак ваш новый URL
  2. Войдите в свою wp-adminпанель управления и перейдите, чтобы setting->general изменить адрес WordPress (URL) и адрес сайта (URL)
user8724101
источник