• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Перенос сайта Wordpress на поддомен или новый домен

qwer

Специалист
Местный
Наступил момент, когда потребовалось вносить новые изменения на сайт и для того, чтобы старая версия сайта оставалась работоспособной и доступной пользователям было принято решение перенести на поддомен "https://TEST.example.com"

Казалось бы, задача простая и трудностей возникнуть не должно.

Но, копирование файлов и перенос базы данных постоянно редиректил на основную версию сайта, что даже не позволяло открыть сайт, который был на поддомене. (Вот только если закомментить правила в .htaccess, сайт был доступен, но визуально было видно, что с ним что-то не так)

Перенос с помощью плагина Duplicator (которым я пользовалась всегда) выдавал постоянно незащищеное соединение и не давал возможность в принципе просматривать сайт, который может и был перенесён, и кое-как работоспособен. Для простого переноса плагин вполне подойдет.

Опытные пользователи, вероятно, знакомы с данной темой и без труда переносят сайты на WP на поддомены.
Мне пришлось помучаться и поискать решение, которое, надеюсь, станет полезным для посетителей форума.

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

РЕШЕНИЕ
Есть несколько вариантов решения.
Для начала я опишу подробно свой, в работоспособности которого я уверена на 100%.

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

Это можно сделать в панели управления хостингах используя службу phpMyAdmin
Теперь нужно создать новую БД для клона сайта. В которую позже импортировать обработанную БД.
//После завершения переноса файлов необходимо отредактрировать файл конфигурации wp-config.php
//Изменить старые настройки: название БД/логин пользователя БД/пароль к БД на новые.

В чём же обстоит загвоздка и проблема в некорректности отображения или редиректов? В содержании БД.

Помимо хранения информации о домене сайта, например, "https://example.com" база данных так же индексирует эту информацию посредством подсчёта символов, указывая из скольких символов состоит строка с именем вашего домена.
Выглядит она примерно так:
Код:
(2847, 950, 'post_grid_post_settings', 'a:10:{s:9:"post_skin";s:6:"flip-x";s:19:"custom_thumb_source";s:91:"https://example.com/wp-content/plugins/post-grid/assets/frontend/css/images/placeholder.png";}'),
s:91:"https://example.com/wp-content/plugins/post-grid/assets/frontend/css/images/placeholder.png"
s:N - количество символов, которые содержаться в строке url

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

Но автоматизировать этот процесс так же можно.
СПОСОБ 2 и 3, 4

На просторах интернета был найден скрипт или программа "Safe Search and Replace on Database with Serialized"
Как он работает - лично не проверяла, поэтому описать его работу и настройки не могу.
Но он является бесплатным и как с ним работать вы запросто найдете на просторах интернета.
Так же, оказывается есть ещё способ с помощью плагина "Velvet Blues Update URLs"
Его работу так же описывать не буду, потому что не проверяла.
Но насколько можно судить по скринам плагина, в нём используется интуитивный интерфейс, что облегчает работу с переносом.
И ещё можно воспользоваться плагином "WP Migrate DB".

Информации о переносе на поддомен с сохранением работоспособности всего сайта, по какой-то причине не особо много, хотя, возможно я искала как-то не так. В основном попадала на варианты, где предлагали развернуть чистый WP, натянуть на него тему и плагины настроить заново.

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

Будет интересно прочитать и про другие способы переноса.
Жду ваши комментарии :love:
 
Последнее редактирование:
  • Like
Реакции: ADv

artemkomarov

Специалист
Местный
Я произвела замену и подсчеты самостоятельно, заняло это примерно часа три-четыре.
Я вам по секрету скажу это краткая запись
a - значит array
s - значит string, а число количество символов в строке
так хранятся все опции в WP ни чего менять вручную не надо. для этого есть функции
если какой-то плагин в вашем случае post-grid сохраняет абсолютные пути то пишите об это разработчику так как это недоработка. а вообще перенос сайта очень прост
  • переносим все файлы
  • удаляем htaccess
  • прописываем новый пути к mysql серверу с импортированной базой
  • и через sql запрос меняем все что имеет старый адрес на новый домен.
ни какие плагины не нужны. на все про все 10 мин работы
 
  • Like
Реакции: qwer

qwer

Специалист
Местный
Я вам по секрету скажу это краткая запись
a - значит array
s - значит string, а число количество символов в строке
так хранятся все опции в WP ни чего менять вручную не надо. для этого есть функции
если какой-то плагин в вашем случае post-grid сохраняет абсолютные пути то пишите об это разработчику так как это недоработка. а вообще перенос сайта очень прост
  • переносим все файлы
  • удаляем htaccess
  • прописываем новый пути к mysql серверу с импортированной базой
  • и через sql запрос меняем все что имеет старый адрес на новый домен.
ни какие плагины не нужны. на все про все 10 мин работы

Спасибо! Достаточно информативно!
Вот только ответ совсем не для новичков.

Ранее я никогда не сталкивалась с такой проблемой, а учитывая что это мои первые разработки, которые связанные с WP, приходится очень многому учиться на ходу. :unsure:
И естественно, почти везде только и пишут о плагинах и переносах с их помощью. Поэтому и пришлось мудрить, и думать как же быть с этим переносом.

А .htaccess и удаляла, и перезаписывала, вот только не совсем сработало.

Касательно путей, в таком случае, придется писать многим разработчикам тогда, если это их недоработки (n)

У меня возникли вопросы по вашему пункту:
Можете уточнить касательно "прописываем новые пути к mysql серверу с импортированной базой"?
Имеется в виду через управление операционной системой linux? Или это где-то в настройках хостинг-провайдеров должно находиться?
Мне этот пункт совсем неясен. :unsure:
 

artemkomarov

Специалист
Местный
Можете уточнить касательно "прописываем новые пути к mysql серверу с импортированной базой"?
когда вы все копируете вы копируете и файлик wp-config который содержит все что связано с базой адрес название пароль разумееется при переносе эти параметры меняются и их необходимо заменить
https://codex.wordpress.org/Редактирование_wp-config.php
 

qwer

Специалист
Местный
когда вы все копируете вы копируете и файлик wp-config который содержит все что связано с базой адрес название пароль разумееется при переносе эти параметры меняются и их необходимо заменить
https://codex.wordpress.org/Редактирование_wp-config.php

Я это делала
 
Сверху Снизу