Два типа домена
Школа доступна по собственному адресу. Платформа поддерживает два типа домена (SchoolDomainType):
Тип домена выбирается в панели управления: Настройки школы → Домен школы.
Базовый поддомен
Базовый домен вы задаёте ещё при создании школы, а потом можете изменить в настройках. Итоговый адрес —<baseDomain>.exode.biz.
1
Откройте раздел «Домен школы»
В настройках выберите вариант «Базовый домен».
2
Введите поддомен
Впишите желаемый поддомен (3–20 символов, латиница, цифры и дефис). Поле проверяет
доступность домена в реальном времени с задержкой ~0.5 сек.
3
Сохраните
Пока домен не сохранён, доступны кнопки «Сохранить» и «Отмена». После сохранения адрес
сразу становится актуальным.
Проверка доступности выполняется запросом
schoolManageCheckDomain: если домен занят или
некорректен, поле подсветится ошибкой и сохранение будет заблокировано. Минимальная длина для
запуска проверки — 3 символа.Собственный домен
Собственный домен (Custom) позволяет открывать школу на вашем адресе, напримерlearn.company.com, без упоминания exode.biz.
Принудительный редирект на собственный домен
Когда собственный домен подключён, появляется переключатель «Перенаправлять на собственный домен» (config.serve.forceRedirectToCustomDomain).
Если он включён, обращения к базовому поддомену автоматически перенаправляются на
собственный домен:
Как система определяет школу по домену
Резолвинг школы по домену происходит на сервере при отрисовке страницы (SSR), вserver/Platform.tsx. Логика упрощённо такая:
1
Разбор адреса запроса
Сервер определяет, что это школьная платформа: либо запрос пришёл на собственный домен
школы (
isCustomSchoolDomain), либо на поддомен *.exode.biz (isBaseSchoolSubdomain).2
Поиск школы
Вызывается
getSchoolByDomain(...) — GraphQL-запрос schoolFindOneByDomain(domain),
который возвращает школу по её домену (для custom передаётся хост, для base — поддомен).3
Проверка актуального адреса
Метод
getActualSchoolRequestUrl вычисляет «правильный» адрес для школы исходя из её
domainType, baseDomain и customDomain.4
Редирект при необходимости
Если фактический адрес не совпадает с актуальным (или включён
forceRedirectToCustomDomain), сервер отдаёт временный редирект (307) на нужный домен.5
Рендер или «школа не найдена»
Если школа найдена — страница рендерится с её конфигом; если нет — отдаётся страница
«школа не найдена».