WordPress Multisite — это режим, в котором на одной установке ядра WordPress может работать неограниченное количество сайтов, при этом домены сайтов в сети могут быть совершенно разными.
При конфигурации WordPress в режиме Multisite предлагается два варианта сети — сеть с субдиректориями, и сеть с субдоменами. Данная опция часто вводит владельцев сайтов в заблуждение, что все сайты в сети будут работать исключительно в рамках одного домена, но это не так — любой сайт в сети Multisite может иметь свой собственный домен.
Плагин WordPress MU Domain Mapping
Чаще всего для работы с различными доменами в сети Multisite используется плагин WordPress MU Domain Mapping, который позволяет привязать один или несколько доменов к любому сайту в сети через специальный интерфейс.
Этот плагин содержит собственные таблицы с доменами и работает через специальный файл wp-content/sunrise.php
, который запускается на раннем этапе загрузки ядра WordPress. В этом файле плагин определяет запрашиваемый домен, и устанавливает требуемые константы и глобальные переменные для корректной работы.
В более новых версиях ядра WordPress, использовать разные домены можно и без дополнительных плагинов, основываясь на уже существующих таблицах с данными о каждом сайте в сети.
Домены на уровне ядра WordPress Multisite
На сегодняшний день этот метод является больше «трюком» нежели полноценной возможностью режима Multisite в WordPress. Тем не менее, разработчики ядра хорошо знакомы с данным методом, поэтому используя его можно рассчитывать на полноценную совместимость в будущих обновлениях.
Как и в случае с плагином, данный метод подразумевает, что вы установили WordPress Multisite в режиме субдоменов. Чтобы установить доменное имя для сайта в сети, достаточно указать его в конфигурации сайта в панели управления сетью:
Учтите, что если вы создаете новый сайт в сети, вам сперва потребуется создать его в виде поддомена основного сайта, и уже после этого можно его отредактировать и изменить на полноценный домен.
После внесения этих изменений, сайт сразу же начнет работать по указанному новому домену (при условии, что веб-сервер сконфигурирован корректно), но работа на этом не закончилась. По умолчанию ядро WordPress сохраняет куки аутентификации на основном домене в сети, поэтому для дополнительных доменов требуется внести небольшое изменение в файл wp-config.php
:
define( 'COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );
После этого убедитесь в том, что вы можете выполнить вход по новому домену, а также на все остальные сайты в сети Multisite.
Любую дополнительную логику и редиректы для дополнительных доменов можно прописать в файле sunrise.php. Если же вы желаете иметь сеть как с поддоменами, так и с субдиректориями, то это тоже возможно, но не без дополнительной конфигурации веб-сервера.