Поддержка Проблемы и решения Перенос сайта на WP с домена второго уровня на домен третьего уровня

  • Решено golgofa_rus

    (@golgofa_rus)


    Скопировал рабочий сайт с домена второго уровня на домен третьего — http://www.test-site.bmwland.ru/ . Нужно для экспериментов, чтобы не ломать рабочий сайт.

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

    В файлах темы и БаддиПресса нашёл и изменил прямые упоминания старого адреса на новый.

    Принудительно в wp-config.php прописал:

    define(‘WP_SITEURL’, ‘http://www.test-site.bmwland.ru’);
    define(‘WP_HOME’, ‘http://www.test-site.bmwland.ru’);

    «Настройки» — «Постоянные ссылки» обновлял.

    Скопировал, переименовал и подключил базу в wp-config.php . Внёс изменения названия сайта в таблицах wp_options и wp_posts. Да и вообще во всех таблицах, где был явно указан старый адрес.

    Но, кроме главной, не открывается ни одна страница —
    The requested URL /auto/bmv was not found on this server.
    Ctrl + F5 кучу раз. Эффект нулевой.

    Помогите победить данную проблему.
    Всем заранее спасибо!

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Файлы сайта не нужно редактировать
    Просто в базе данных на вкладке SQL сделайте так

    Только будьте вниметельны, слешов в конце адресов olddomen.com и newdomen.com быть не должно

    UPDATE wp_options SET option_value = replace(option_value, ‘http://olddomen.com’, ‘http://newdomen.com’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;

    UPDATE wp_posts SET guid = replace(guid, ‘http://olddomen.com’,’http://newdomen.com’);

    UPDATE wp_posts SET post_content = replace(post_content, ‘http://olddomen.com’, ‘http://newdomen.com’);

    http://clip2net.com/s/3HkKjo8

    Данным способом пользуюсь постоянно

    Но, кроме главной, не открывается ни одна страница —
    The requested URL /auto/bmv was not found on this server.

    про хтацесс забыли. https://codex.wordpress.org/%D0%A7%D0%90%D0%92%D0%9E/%D0%9D%D0%B5_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%8E%D1%82_%D0%BF%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8

    Да и вообще во всех таблицах, где был явно указан старый адрес.

    Поздравляю, Вы испортили сериализованные массивы.

    Для корректного переноса стоит использовать плагины для миграции. Напр https://wordpress.org/plugins/duplicator/

    UPDATE wp_options SET option_value = replace(option_value, ‘http://olddomen.com’, ‘http://newdomen.com’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;

    Спасибо, я именно так и делал.

    про хтацесс забыли. https://codex.wordpress.org/%D0%A7%D0%90%D0%92%D0%9E/%D0%9D%D0%B5_%D1

    Спасибо.
    Да нет. Проверил. ВП лежит в корне.
    Поэтому как и на старом месте:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ — [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

    Поздравляю, Вы испортили сериализованные массивы.

    Базу перезалью. Это же в данной ситуации не влияет на ситуацию.

    Для корректного переноса стоит использовать плагины для миграции. Напр https://wordpress.org/plugins/duplicator/

    Вот об этом совсем не подумал. Раньше руками переносил и получалось.
    А плагин учтёт все навороты? И подключенный БаддиПресс тоже?

    А плагин учтёт все навороты?

    «Всё» — зависит от используемых плагинов и глубины замены (у него есть что-то типа «глубокая замена»). Может и не всё, но точно сделает переезд гораздо правильнее и безопаснее чем Вы натворили руками в базе. Руками — это и тот же запрос.

    Во всяком случае после переноса базы можно поискать в ней следы старого — путей и доменов. Если найдутся в сериализованных массивах, то либо повторить с глубокой заменой, либо использовать скрипт https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

    ВП лежит в корне.

    «Хтацесс в корне» Вы хотели сказать? А апач работает. А модреврайт?

    Не хочет работать Дубликатор. При сканировании выдаёт ошибку на рабочем сайте.
    Scan Error
    Please try again!
    Server Status: 500 -Internal Server Error

    «Хтацесс в корне» Вы хотели сказать? А апач работает. А модреврайт?

    WordPress установлен в корневой каталог сайта и там же лежит хтацесс…

    При сканировании выдаёт ошибку на рабочем сайте.

    Вам же надо перенести с поддомена. Вот на нём и запускайте. Добавьте в исключения все подкаталоги — потом вручную перенесёте. Главное забекапить базу.

    WordPress установлен в корневой каталог сайта и там же лежит хтацесс…

    Хтацесс может не работать. Либо прав нет, либо у Вас не апач, либо в апаче нет работает модреврайт. Выше по ссылке об этом написано:

    Вышеприведенный код работает только под Apache при наличии модуля mod_rewrite и значении директивы AllowOverride отличном от None. (директива «AllowOverride None» может быть выставлена как для сервера в целом, так и для конкретного сайта, нужно проверить все места)

    • Ответ изменён 7 лет, 1 месяц назад пользователем SeVlad.

    Вам же надо перенести с поддомена. Вот на нём и запускайте. Добавьте в исключения все подкаталоги — потом вручную перенесёте. Главное забекапить базу.

    Мне нужно скопировать с А на Б.
    Нужно запускать на Б?

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

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Тема «Перенос сайта на WP с домена второго уровня на домен третьего уровня» закрыта для новых ответов.