Мультисайт на MODX Revolution
Автор статьи: AlexS
Подготовка хостинга
Перед тем как начать настройку мультисайтинга на 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)
В результате вы должны получить следующую картину:
Создание страницы ошибки не является обязательным для того, чтобы мультисайтинг заработал. Настройка страницы ошибки производится также как и настройка главной страницы через системные настройки ядра:
Связывание домена с контекстом
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.
Всё
02-03-2012 мультисайт уроки MODx Revolution контексты Виктор Матушевский
Андрей
05.04.2012 11:36Спасибо! Очень полезная информация.
Сергей
23.04.2012 20:32А как быть в том случае, если у каждого домена своя собственная папка?
Андрей
19.02.2015 09:50у меня почему - то всё вышло пропустив шаги в настройке админке с контекстом.
То есть я всего лишь сослал 2 домена в менеджере доменов на хостинге на одну и ту же папку и всё.
В чем необходимость настроек в админке ??? может у меня что-то всплывёт в дальнейшем , ответьте, пожалуйста
Андрей
20.02.2015 09:41Сорри , у меня видимо задача совсем другая. я не сразу понял о чем речь. мне нужно чтобы на 2 домена был физически один сайт. видимо достаточно просто сделать второй домен в качестве синонима первому.
Константин
18.03.2015 12:44Сейчас есть base_url ? что то не нашел такой ключ в настройках системы
Сергей
10.08.2015 09:54А как сделать отдельную карту сайта для каждого контекста?