Multysite

HIT

03.02.2016

2917

Мультисайт — это система объединения нескольких сайтов в одну систему, с единой админкой. К данному функционалу прибегают в случаях: мультирегиональности, мультиязычности а также других случаях.

Установка сети Multysite

Multysite — объединение нескольких сайтов на одной админке.

Настройка функционала Multysite:

  1. В системном файле wp-config.php находим строку
    require_once(ABSPATH . 'wp-settings.php');

    и вставляем перед ней

    /* Multisite */ define( 'WP_ALLOW_MULTISITE', true );
  2. После этого зайдите в панель администрирования WordPress и в разделе Инструменты (Tools) появится новый пункт Установка сети (Network Setup). На этом экране вы сможете выбрать тип сети и запустить установку. Мы рекомендуем использовать Multisite в режиме субдоменов. При завершении установки WordPress вам предложит добавить несколько новых директив в файл wp-config.php и несколько строк в файл .htaccess, после чего вам необходимо повторно выполнить вход а панель администрирования, уже как супер-администратор.

После установки данной системы, администраторы не смогут редактировать (включать/отключать) плагины и темы, теперь сделать это может пользователь с правами Суперадминистратор

На хостинге необходимо сделать 2 вещи:

  1. Прописать в DNS маску: *.site.ru A 8.888.888.88 (IP как у основного домена). Это необязательно, если создавать А-запись для каждого поддомена. Причем запись поддомена будет иметь более высокий приоритет над *-записью.
  2. В файле httpd.conf (Apache) прописать строку: ServerAlias *.site.ru (это называется wildcard для домена). Но в некоторых хостингах нет непосредственного доступа к этому файлу, нужно писать тикет в тех.поддержку с просьбой это сделать.

Несколько сайтов с разными доменами

Эту задачу может решить плагин WordPress MU Domain Mapping.

  1. ИЗ архива плагина копируем файл domain_mapping.php в /wp-content/plugins, а файл sunrise.php — в /wp-content
  2. В файле wp-config.php перед строкой
    require_once(ABSPATH . 'wp-settings.php'); 

    добавляем

    define( 'SUNRISE', 'on' );
  3. Работы на хостинге: нужно создать синоним основного сайта (алиас) — домен на котором будет второй сайт (Например: site.com)
  4. Создаем новый сайт в виде субдомена (domain.site.ru). В основном домене (site.ru) надо прописать A запись:
    Хост: domain, Тип: A, Значение записи: IP основного домена.
  5. После того как заработает новый подсайт на субдомене domain.site.ru, в его админке переходим в меню Domain Mapping в разделе Инструменты и переключаемся на другой домен site.com. Теперь сайт будет работать под доменом site.com.
  6. [Не уверен обязательно или нет..] Вносим небольшое изменение в файл wp-config.php
    define( 'COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );

В статье могут быть неточности, в части — Несколько сайтов с разными доменами.

Единый шаблон мультисайта

Основная сложность, что в мультисайте функционирует один шаблон (тема).
Возможное решение:

if ( get_current_blog_id() == 1 ) :
// делаем что-нибудь только на первом сайте в сети
elseif ( get_current_blog_id() == 2 ) :
// делаем что-то на втором сайте
endif;

Решение проблемы — использование дочерних тем.

Алиасы к основному домену

В основном сайте в разделе инструменты нет настроек domain mapping. К основному сайту алиасы добавляем на хостинге (у алиасов делаем А-запись).
Если перейти по алиасу например site.org то может вылезти сообщение: «Регистрация отключена».
Чтобы этого не было прописываем в файле wp-config следующую строку (перед строкой «Это всё, дальше не редактируем. Успехов!»)

define( 'NOBLOGREDIRECT', 'http://site.ru' );

SSL для сети мультисайт

Если мультисайт изначально заведен на домен без https:// , то поменять его можно только через БД (таблица wp_options). Чтобы сертификат был и на поддоменах, нужно заказывать выпуск сертификатов для каждого поддомена (предварительно создав сами поддомены), или прописывать их в алиасах при заказе сертификата. И у поддомена также менять потом в БД siteurl и home.

Если в процессе создания поддоменов в панели хостинга создадутся поддмены (не в доменах, а в сайтах у Бегет) то поддомены нужно удалить.

Robots.txt для мультисайта

т.к. Мультисайт — это единая директория с сайтом, то возникает вопрос — как сделать robots.txt для поддоменов. Решением является плагин Multisite Robots.txt Manager (300+), он правда не обновлялся более 2-х лет, но работает как надо. В консоли каждого поддомена появляется настройка в которую мы прописываем содержимое файла
robots.txt, в т.ч. и для основного. При этом физически файла
robots.txt в основной директории сайта быть не должно.

Также в настройках указывается путь к sitemap.

Sitemap для сети мультисайт

Хорошо показал себя плагин Google XML Sitemaps. Он создает для поддоменов независимые карты сайта. Не забываем отключить sitemap плагина Yoast SEO, если используется.

Объединение в мультисайт действующих сайтов

  1. Превращаем основной сайт (домен) в мультисайт.
  2. Создаем доп. сайты. Отключая при этом на хостинге эти сайты как отдельные.
  3. После добавления доп. сайтов в БД появляются таблицы wp_2_, wp_3_ и т.д. Чтобы импортировать данные из предыдущего сайта нужно в исходной таблице изменить название таблиц на соответствующее значение в новой таблице wp_ > wp_2_. Сделать таким образом экспорт каждой таблицы (которые нужны), и импортировать их в БД мультисайта.
  4. Загруженные файлы (содержимое папки uploads) копируем в автоматически созданную папку соответствующую данному подсайту (например uploads/sites/2/).
  5. Настраиваем все плагины (SEO, sitemap, robots.txt), постоянные ссылки, настройки темы (theme_mods_названиетемы в таблице wp_options), размеры файлов (если необходимо перезагружаем размеры плагином regenerate thumbnail).
  6. Создаем при необходимости дочернюю тему и меняем в её файлах индивидуальные скрипты, счетчики (цели), стили, шаблоны и прочее.

Также необходимо поправить в записях и страницах ссылки на файлы, в связи с изменением папки unloads

Поделится информацией с друзьями

  • Комментарии
  • Вложения

Добавить комментарий

Пока нет комментариев. Будь первым!

Multysite
Мобильная версия сайта
Рекомендации для васМобильная версия сайтаOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.