Настройка мультисайтовости 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка мультисайтовости 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1181
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    813
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка мультисайтовости 1С-Битрикс

Мультисайтовость в Битриксе — это когда на одной установке (одна кодовая база, одна БД) работают несколько сайтов с разным контентом, дизайном или языком. Типичный кейс: основной сайт компании и отдельный лендинг для акции, или русская и английская версии магазина. Без мультисайтовости приходится поднимать отдельные инстансы Битрикса — с удвоением расходов на лицензию, обслуживание и синхронизацию данных.

Как устроена мультисайтовость изнутри

Каждый сайт в Битриксе — это запись в таблице b_lang. Поле LID (двухсимвольный идентификатор: s1, s2) — ключ, по которому система определяет, какой сайт запрошен. Определение сайта происходит в bitrix/modules/main/include/prolog_before.php на основе:

  1. Доменного имени — поле SERVER_NAME в настройках сайта
  2. Директории — поле DOC_ROOT и DIR, если сайты разнесены по папкам
  3. Условий в файле dbconn.php (устаревший подход) или через SITE_ID в .settings.php

Привязка контента к сайту: инфоблоки, разделы каталога, пункты меню, шаблоны — всё привязывается к LID. Один инфоблок может быть доступен на нескольких сайтах, а может — только на одном.

Пошаговая настройка

1. Создание сайта. Административная панель → Настройки → Настройки продукта → Сайты. Создаём новый сайт:

  • LID — уникальный двухсимвольный код (s2)
  • Название — для идентификации в админке
  • ДоменSERVER_NAME, например promo.example.com
  • Папка сайта/ если отдельный домен, или /promo/ если подпапка
  • Шаблон — можно назначить отдельный шаблон из /bitrix/templates/ или /local/templates/

2. Настройка веб-сервера. Для отдельного домена нужен vhost, указывающий на тот же DOCUMENT_ROOT:

server {
    server_name promo.example.com;
    root /home/bitrix/www;  # тот же корень
    # остальные директивы идентичны основному сайту
}

3. Привязка инфоблоков. В настройках каждого инфоблока — вкладка «Сайты». Отмечаем, на каких сайтах он доступен. Компоненты bitrix:news.list, bitrix:catalog.section автоматически фильтруют контент по текущему SITE_ID.

4. Шаблоны компонентов. Если на разных сайтах нужно разное отображение одного компонента — создаём шаблон с суффиксом сайта: .default для s1, promo для s2. В шаблоне сайта указываем нужный шаблон компонента.

5. Меню. Файлы меню (.menu.php) лежат в корне сайта или подпапке. При мультисайтовости с разными папками — каждый сайт автоматически берёт своё меню. При одном корне — используется компонент bitrix:menu с параметром MENU_CACHE_TYPE и проверкой SITE_ID.

Частые ошибки

Один шаблон на два сайта с разным дизайном. Не стоит городить if ($SITE_ID == 's2') в шаблоне — лучше создать отдельный шаблон. Условия множатся, код становится нечитаемым.

Кэш. Битрикс кэширует контент с привязкой к SITE_ID, но если вручную формировать ключ кэша в кастомных компонентах — нужно явно включать SITE_ID в $cacheId. Иначе пользователь на s2 увидит контент s1.

Почта. Почтовые шаблоны (b_event_message) привязываются к сайту. Если создали новый сайт, но не привязали шаблоны писем — уведомления о заказах, регистрации и т.п. не будут уходить. Проверяется в разделе Настройки → Почтовые события.

Настройка мультисайтовости занимает около одного рабочего дня при условии, что архитектура контента уже продумана — какие инфоблоки общие, какие раздельные, сколько шаблонов нужно.