Подготовка хостинга
Перед тем как начать настройку мультисайтинга на MODX Revolution, необходимо подготовить наш хостинг:
-
Установите в качестве корневой папки для всех необходимых домейнов папку, в которой установлен MODX Revolution. Необходимо настраивать только домены второго уровня (имя.ru), нет нужды конфигурировать домены третьего уровня (имя.имя.ru) на этом этапе. Их мы настроим в самом MODX Revolution в продолжении нашего урока.
-
Нам понадобится доступ к файлам сайта, поэтому вам нужно позаботиться о том, чтобы у вас был FTP доступ или альтернативный вариант.
Создание контекстов
Мультисайтинг на MODX Revolution реализуется посредствам “Contexts” (Контексты). Когда вы впервые вошли в панель управления MODX Revolution, вы наверняка заметили в левом меню иконку маленького домика с названием “web”. Это Контекст сайта по-умолчанию.
Мы добавим дополнительные контексты для каждого из наших сайтов. Создание контекстов производиться из меню System > Contexts: .
Как только вы перейдете на страницу контекстов, вы увидете таблицу с двумя уже существующими контектами - ‘web’ и ‘mgr’. ‘mgr’ - это контекст интерфейса управления MODX Revolution. Никакой из этих двух контектов (‘web’ и ‘mgr’) не может быть удалён.
Нажмите на кнопку ‘Create New‘ для создания контекста дополнительного сайта. ‘Content Key‘ это имя вашего контекста, которое будет отображаться в меню Resources в панели администрации.
Название контекста ‘Content Key‘ должно быть простым и без пробелов.
Обновите меню Resources (нажав на зеленые стрелочки в меню) и вы увидите новосозданный контекст. Создайте главную страницу сайта и страницу ошибки в нашем новом контексте. В продолжении урока мы укажем, какая из страниц является главной и какая страницей ошибки.
На данном этапе у вас должно получиться следующее:
Конфигурирование контекста
Сейчас нам необходимо настроить наш новый контекст. Делается это посредствам добавления специальных системных настроек.
-
Перейдитe к списку контекстов (System > Contexts).
-
Нажмите правой кнопкой на новый контекст и выберите ‘Update Context‘ в открывшемся меню.
-
Перейдите на закладку ‘Context Settings‘ и нажмите на кнопку ‘Create New’.
-
В открывшемся окошке нам необходимо заполнить только Key, Name и Value.

Повторите последний пункт для создания следующих параметров контекста (key - value):
site_start – ID главной страницы сайта (этот параметр написан ввиде цифры в скобках в конце каждого документа в меню Resources) base_url – установите этот параметр “/” (без кавычек) http_host – укажите в этом параметре домен вашего дополнительного сайта “имя.ru” (если речь идет о домейне третьего уровня, то в этом параметре необходимо указать имя.имя.ru) site_url – укажите в этом параметре полный адрес вашего дополнительного сайта “http://имя.ru/” (можете указать с www)
В результате вы должны получить следующую картину:
Создание страницы ошибки не является обязательным для того, чтобы мультисайтинг заработал. Настройка страницы ошибки производится также как и настройка главной страницы, только в поле Key нужно указать error_page
Связывание домена с контекстом
Cуществует 2 варианта этой настройки. Первый вариант - в этом случае все домены ссылаются на одну и туже папку. Второй вариант - в этом случае у каждого домена своя собственная папка. В данной статье мы разберем первый вариант.
Откройте в редакторе (к примеру Notepad++) файл index.php, который находится в корневой папке установленного MODX Revolution и прокрутите до конца документа. Вы должны обнаружить следующий код:
/* Initialize the default 'web' context */
$modx->initialize('web');
Замените вышеуказанные 2 строки на следующий код:
` /* Настройка маппинга контекстов */ switch ($modx->getOption(‘http_host’)) { case ‘modxdomain2.com:80’: case ‘modxdomain2.com’: // Если http_host является дополнительным доменом, то переключить контекст $modx->switchContext(‘Domain2’); break;
default:
// откат, возврат к основному контексту
$modx->initialize('web');
break;
} `
Замените modxdomain2.com на имя вашего домена и **Domain2 **на имя вашего дополнительного контекста. Если вам необходимо добавить дополнительные сайты, повторите следующие строки перед тегом default:
case 'modxdomain3.com:80':
case 'modxdomain3.com':
// Если http_host является дополнительным доменом, то переключить контекст
$modx->switchContext('Domain3');
break;
Разумеется предварительно создав для этого домен modxdomain3.com и контекст Domain3.
Всё