WordPress Multisite – это мощная функция, позволяющая управлять целой сетью сайтов из одной установки WordPress. Вместо того чтобы поддерживать несколько независимых инсталляций, вы можете централизованно управлять темами, плагинами и пользователями для всех своих сайтов, будь то сеть блогов, корпоративных порталов или клиентских проектов.
Это руководство предназначено для тех, кто ищет конкретные инструкции по активации и настройке Multisite через код. Мы подробно рассмотрим необходимые изменения в файлах wp-config.php и .htaccess, которые являются основой для корректной работы многосайтовой установки. Вы узнаете, как шаг за шагом внедрить требуемые директивы для режимов поддоменов или подкаталогов, а также как решать распространенные проблемы, связанные с кодовой конфигурацией.
Понимание WordPress Multisite и подготовка к кодовой активации
WordPress Multisite – это функциональность, позволяющая управлять сетью из нескольких сайтов с одной установки WordPress. Это идеальное решение для блогов, корпоративных порталов или клиентских проектов, требующих централизованного администрирования. Существует два ключевых режима работы:
-
Поддомены (Subdomains): Каждый сайт в сети имеет уникальный поддомен (например,
site1.yourdomain.com,site2.yourdomain.com). Требует настройки wildcard DNS. -
Подкаталоги (Subdirectories): Сайты располагаются в подкаталогах основного домена (например,
yourdomain.com/site1,yourdomain.com/site2).
Перед активацией Multisite критически важна подготовка:
-
Резервное копирование: Обязательно создайте полную резервную копию файлов WordPress и базы данных.
-
Постоянные ссылки: Установите структуру постоянных ссылок на «Название записи» (Post name).
-
Деактивация плагинов: Временно деактивируйте все активные плагины, чтобы избежать конфликтов.
-
Требования сервера: Убедитесь, что ваш веб-сервер (Apache с
mod_rewriteили Nginx) поддерживает необходимые конфигурации.
Что такое WordPress Multisite и ключевые режимы работы (поддомены/подкаталоги)
WordPress Multisite — это мощная функция, позволяющая управлять сетью из нескольких сайтов с одной установки WordPress. Все сайты в сети используют общие файлы ядра, темы и плагины, но имеют отдельные базы данных для контента, пользователей и настроек, что значительно упрощает администрирование. Эта архитектура идеально подходит для блогов компаний, образовательных учреждений или создания SaaS-платформ.
Существует два основных режима работы Multisite, выбор которых влияет на структуру URL-адресов и требует различных настроек сервера:
-
Режим поддоменов (Subdomains): Каждый новый сайт в сети получает уникальный поддомен, например,
site1.yourdomain.com,site2.yourdomain.com. Этот режим требует настройки wildcard DNS (*.yourdomain.com) на вашем сервере или у регистратора доменов. -
Режим подкаталогов (Subdirectories): Сайты создаются как подкаталоги основного домена, например,
yourdomain.com/site1,yourdomain.com/site2. Этот режим обычно проще в настройке, особенно для уже существующих сайтов, и требует лишь корректной работы постоянных ссылок.
Подготовка сервера и WordPress к активации Multisite (требования, резервные копии, постоянные ссылки, плагины)
Прежде чем приступить к кодовой активации Multisite, необходимо убедиться, что ваша среда соответствует требованиям и приняты меры предосторожности. Это минимизирует потенциальные проблемы и обеспечит гладкий переход.
-
Требования к серверу: Убедитесь, что ваш веб-сервер (Apache с
mod_rewriteили Nginx) настроен корректно. Для режима поддоменов требуется возможность создания wildcard-поддоменов (*.yourdomain.com) на уровне DNS и сервера. -
Резервные копии: Крайне важно создать полную резервную копию файлов WordPress и базы данных. Это ваша страховка на случай непредвиденных ошибок в процессе активации.
-
Постоянные ссылки (Permalinks): Убедитесь, что на вашем сайте включены «красивые» постоянные ссылки (например, «Название записи»), а не стандартные. Это необходимо для корректной работы Multisite.
-
Плагины: Рекомендуется временно деактивировать все активные плагины перед началом процесса активации Multisite, чтобы избежать конфликтов. После успешной настройки их можно будет активировать снова.
Шаг 1: Код для активации функции Multisite в wp-config.php
Первым шагом к активации многосайтовости является добавление специальной константы в файл wp-config.php. Откройте этот файл в корневой директории вашей установки WordPress и найдите строку /* That's all, stop editing! Happy publishing. */. Перед этой строкой добавьте следующую директиву:
define('WP_ALLOW_MULTISITE', true);
Сохраните изменения в wp-config.php. После этого войдите в панель администратора WordPress. В меню "Инструменты" появится новый пункт — "Настройка сети". Перейдите на эту страницу. Здесь WordPress автоматически сгенерирует уникальные фрагменты кода, необходимые для дальнейшей конфигурации Multisite, включая настройки для wp-config.php и .htaccess, исходя из выбранного вами режима (поддомены или подкаталоги).
Добавление define('WP_ALLOW_MULTISITE', true): место и пример кода
Для начала процесса активации Multisite необходимо внести однострочное изменение в файл wp-config.php. Этот файл является одним из ключевых конфигурационных файлов WordPress и находится в корневой директории вашей установки. Откройте его с помощью любого текстового редактора или FTP-клиента.
Найдите строку /* That's all, stop editing! Happy publishing. */ и перед ней добавьте следующую константу:
define('WP_ALLOW_MULTISITE', true);
Это позволит WordPress понять, что вы намерены использовать функционал Multisite. После добавления строки сохраните изменения в файле wp-config.php и загрузите его обратно на сервер, если вы редактировали его локально. Этот шаг не активирует Multisite полностью, а лишь открывает доступ к интерфейсу его настройки в админ-панели.
Вход в админку и меню "Настройка сети": процесс генерации кодов
После сохранения файла wp-config.php с добавленной константой define('WP_ALLOW_MULTISITE', true); и обновления страницы в браузере, в административной панели WordPress появится новый пункт меню: Инструменты -> Настройка сети.
Перейдя по этому пункту, вы увидите страницу «Создание сети сайтов WordPress». Здесь вам будет предложено:
-
Указать название вашей сети (например, «Моя Сеть Сайтов»). Это будет отображаться в заголовке административной панели.
-
Ввести адрес электронной почты администратора сети.
-
Выбрать режим работы Multisite: поддомены (например,
site1.example.com,site2.example.com) или подкаталоги (например,example.com/site1,example.com/site2). Этот выбор критически важен, так как он определяет структуру URL для новых сайтов и влияет на генерируемый код дляwp-config.phpи.htaccess. Обратите внимание, что если ваша установка WordPress существует более месяца или содержит записи, опция подкаталогов может быть недоступна.
После заполнения полей и выбора режима, нажмите кнопку «Установить». WordPress автоматически сгенерирует два блока кода: один для файла wp-config.php и один для файла .htaccess. Эти коды будут уникальны для вашей установки и выбранного режима сети.
Шаг 2: Внедрение сгенерированного кода в wp-config.php и .htaccess
После того как WordPress сгенерировал необходимые фрагменты кода, следующим шагом является их аккуратное внедрение в соответствующие файлы. Это критически важный этап для полноценной активации вашей многосайтовой сети.
Код для wp-config.php: объяснение констант
Сгенерированный код для wp-config.php должен быть вставлен перед строкой /* That's all, stop editing! Happy publishing. */. Он будет выглядеть примерно так:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true); // или false для подкаталогов
define('DOMAIN_CURRENT_SITE', 'ваш-домен.ru');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
-
MULTISITE: Устанавливает режим Multisite как активный. -
SUBDOMAIN_INSTALL:trueдля поддоменов (site1.ваш-домен.ru),falseдля подкаталогов (ваш-домен.ru/site1/). -
DOMAIN_CURRENT_SITE: Основной домен вашей сети. -
PATH_CURRENT_SITE: Путь к основной установке WordPress (обычно/). -
SITE_ID_CURRENT_SITEиBLOG_ID_CURRENT_SITE: Идентификаторы основного сайта в сети.
Код для .htaccess: примеры для разных режимов
Код для .htaccess полностью заменяет существующие правила WordPress. Убедитесь, что вы сохранили резервную копию оригинального файла. Пример для режима поддоменов:
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
Для режима подкаталогов код будет немного отличаться в секции RewriteRule и RewriteCond, но общая структура останется схожей. После сохранения обоих файлов, ваша сеть Multisite должна быть активна и готова к работе.
Код для wp-config.php: объяснение констант (MULTISITE, SUBDOMAIN_INSTALL, DOMAIN_CURRENT_SITE и т.д.)
После того как вы прошли процесс «Настройка сети» в админке WordPress, система сгенерирует уникальный набор констант, которые необходимо добавить в ваш файл wp-config.php. Эти константы определяют основные параметры вашей многосайтовой установки:
-
define('MULTISITE', true);Эта константа подтверждает, что функция Multisite активирована. Она должна быть установлена вtrueдля корректной работы сети.Реклама -
define('SUBDOMAIN_INSTALL', true);(илиfalse) Определяет режим работы вашей сети:trueдля поддоменов (например,site1.yourdomain.com) илиfalseдля подкаталогов (например,yourdomain.com/site1/). Выбор делается на этапе настройки сети. -
define('DOMAIN_CURRENT_SITE', 'yourdomain.com');Указывает основной домен вашей сети WordPress Multisite. Все сайты в сети будут связаны с этим корневым доменом. -
define('PATH_CURRENT_SITE', '/');Определяет путь к основному сайту в вашей сети. В большинстве случаев это будет/. -
define('SITE_ID_CURRENT_SITE', 1);Идентификатор основного сайта в вашей сети. Обычно это1. -
define('BLOG_ID_CURRENT_SITE', 1);Идентификатор основного блога (сайта) в вашей сети. Для большинства установок он совпадает сSITE_ID_CURRENT_SITE.
Эти константы критически важны для маршрутизации запросов и правильной идентификации сайтов в вашей сети. Их точное размещение в wp-config.php (обычно перед строкой /* That's all, stop editing! Happy publishing. */) обеспечивает стабильную работу Multisite.
Код для .htaccess: примеры для разных режимов и проверка работоспособности
После определения режима работы Multisite в wp-config.php, следующим критически важным шагом является настройка файла .htaccess. WordPress автоматически генерирует необходимые правила перезаписи URL, которые обеспечивают корректную маршрутизацию запросов к подсайтам, будь то в режиме поддоменов или подкаталогов. Эти правила должны быть размещены после строки RewriteBase / и перед # END WordPress.
Пример кода для режима поддоменов:
RewriteEngine On
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
Пример кода для режима подкаталогов:
RewriteEngine On
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*)$ $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
После добавления соответствующего кода в .htaccess, необходимо проверить работоспособность сети. Попробуйте создать новый подсайт через панель суперадминистратора и убедитесь, что он доступен по своему URL, а также что его админ-панель функционирует без ошибок.
Расширенные кодовые настройки и нюансы Multisite
После успешной настройки базовой функциональности Multisite, часто возникает потребность в более гибком управлении доменами и ресурсами. Доменное сопоставление (Domain Mapping) позволяет привязывать к подсайтам собственные доменные имена (например, mysite.com вместо sub.network.com). Для его активации, помимо настройки DNS, может потребоваться добавление define('SUNRISE', 'on'); в wp-config.php и использование специализированных плагинов, которые используют этот механизм.
В контексте управления плагинами и темами, Multisite предлагает централизованный контроль. Суперадминистратор может активировать плагины "по сети" (Network Activate), делая их доступными и активными для всех сайтов, или разрешить активацию на уровне отдельных сайтов. Темы устанавливаются один раз и становятся доступны для выбора на любом подсайте, но активируются индивидуально. Кодовые аспекты здесь касаются в основном совместимости плагинов с Multisite, что часто указывается разработчиками.
Настройка доменного сопоставления (Domain Mapping) через код и плагины
Доменное сопоставление (Domain Mapping) позволяет отдельным сайтам в сети Multisite использовать собственные уникальные домены вместо поддоменов или подкаталогов основного сайта. Исторически это требовало добавления константы define('SUNRISE', 'on'); в wp-config.php и использования специального файла sunrise.php в каталоге wp-content. Этот файл содержал логику для сопоставления входящих доменов с соответствующими ID сайтов в сети.
Хотя sunrise.php остается мощным, кодовым методом для продвинутых сценариев, большинство современных реализаций доменного сопоставления используют специализированные плагины. Эти плагины автоматизируют процесс, управляя необходимыми записями в базе данных и правилами перезаписи, абстрагируя пользователя от прямого редактирования кода. Независимо от выбранного метода, крайне важно правильно настроить DNS-записи (A-записи или CNAME) для каждого сопоставляемого домена, чтобы они указывали на IP-адрес вашего сервера WordPress.
Управление плагинами и темами в сети: кодовые аспекты совместимости и активации
Управление плагинами и темами в сети Multisite имеет свои особенности, отличающиеся от одиночной установки. Суперадминистратор сети может устанавливать плагины и темы, делая их доступными для всех сайтов. Ключевой аспект — это активация: плагины могут быть активированы для всей сети (Network Activate), что делает их активными на всех существующих и будущих сайтах, или индивидуально на каждом сайте (если это разрешено суперадминистратором).
С точки зрения кода, разработчики плагинов и тем должны учитывать среду Multisite, используя функции is_multisite() и is_network_admin() для адаптации функционала. Некоторые плагины могут требовать сетевой активации для корректной работы или предлагать специфические настройки для всей сети. Темы, как правило, устанавливаются один раз и активируются на каждом сайте отдельно, хотя суперадминистратор может принудительно включить тему для всей сети. Важно проверять совместимость расширений с Multisite, чтобы избежать конфликтов и ошибок.
Устранение проблем и деактивация Multisite: работа с кодом
При возникновении проблем после активации Multisite, в первую очередь проверьте wp-config.php и .htaccess на опечатки или некорректные директивы. Убедитесь, что константы Multisite в wp-config.php соответствуют сгенерированным, а правила RewriteRule в .htaccess корректны для выбранного режима (поддомены/подкаталоги). Проверьте логи сервера на ошибки mod_rewrite или PHP.
Для полного удаления Multisite:
-
Код: Удалите
define('WP_ALLOW_MULTISITE', true);и все сгенерированные константы Multisite изwp-config.php. Восстановите исходный.htaccessили удалите из него все Multisite-правила. -
База данных: Обязательно сделайте резервную копию! Удалите таблицы:
wp_blogs,wp_blog_versions,wp_registration_log,wp_site,wp_sitemeta. Также удалите записи, связанные с Multisite, изwp_options(например,ms_sites,ms_global_terms).
Диагностика и исправление ошибок, связанных с кодом wp-config.php и .htaccess
При возникновении проблем с WordPress Multisite, особенно после внесения изменений в wp-config.php или .htaccess, важно систематически подходить к диагностике.
-
Белый экран смерти (WSOD) или Internal Server Error: Часто указывает на синтаксические ошибки в
wp-config.php. Включитеdefine('WP_DEBUG', true);иdefine('WP_DEBUG_LOG', true);для вывода ошибок. Проверьте, что все константы Multisite добавлены корректно и в правильном месте. -
Ошибки 404 для подсайтов или проблемы с перенаправлениями: Это типичные признаки некорректной конфигурации
.htaccess. Убедитесь, что модульmod_rewriteактивен на вашем сервере. Сравните ваш.htaccessс кодом, сгенерированным WordPress в разделе "Настройка сети", и убедитесь, что он соответствует выбранному режиму (поддомены/подкаталоги). Проверьте, нет ли конфликтующих правил от других плагинов или настроек сервера. -
Неправильные URL-адресов сайтов: Убедитесь, что константы
DOMAIN_CURRENT_SITEиPATH_CURRENT_SITEвwp-config.phpсоответствуют вашему основному домену и пути.
Всегда делайте резервные копии перед внесением изменений и используйте FTP/файловый менеджер для прямого редактирования файлов при невозможности доступа к админке.
Полное удаление Multisite: какие строки кода и таблицы базы данных затрагивать
Если принято решение полностью отказаться от функционала Multisite, необходимо выполнить следующие шаги для удаления всех связанных кодовых изменений и данных:
-
Удаление кода из
wp-config.php: Найдите и удалите все строки, добавленные для активации Multisite. Это включаетdefine('WP_ALLOW_MULTISITE', true);и блок констант, сгенерированный при настройке сети (например,define('MULTISITE', true);,define('SUBDOMAIN_INSTALL', false);и т.д.). -
Очистка
.htaccess: Восстановите файл.htaccessдо его стандартного состояния WordPress. Удалите все директивы, добавленные для Multisite, обычно это блок, начинающийся с# BEGIN WordPressи заканчивающийся# END WordPress, который был изменен для поддержки сети. -
Удаление таблиц базы данных: Multisite создает несколько новых таблиц в базе данных (например,
wp_blogs,wp_blog_versions,wp_registration_log,wp_site,wp_sitemeta). Также для каждого нового сайта в сети создаются таблицы с префиксомwp_N_(где N — ID сайта). Их необходимо удалить вручную через phpMyAdmin или аналогичный инструмент. Будьте крайне осторожны, чтобы не удалить таблицы основного сайта.
После этих действий ваша установка WordPress вернется к состоянию одиночного сайта.
Заключение
Мы рассмотрели ключевые аспекты активации и настройки WordPress Multisite, уделяя особое внимание необходимым изменениям в файлах wp-config.php и .htaccess. От базовой активации с помощью define('WP_ALLOW_MULTISITE', true) до тонкой настройки режимов поддоменов/подкаталогов и управления сетью, каждый шаг требовал точного внедрения кода. Понимание констант, таких как MULTISITE, SUBDOMAIN_INSTALL, DOMAIN_CURRENT_SITE, и правильная конфигурация правил перезаписи в .htaccess являются фундаментом стабильной и функциональной многосайтовой установки. Помните о важности резервного копирования и тщательной проверки каждого изменения, чтобы максимально использовать потенциал WordPress Multisite для ваших проектов.