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

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування мультисайтовості 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування мультисайтовості 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) прив'язуються до сайту. Якщо створили новий сайт, але не прив'язали шаблони листів — сповіщення про замовлення, реєстрацію тощо не будуть уходити. Перевіряється в розділі Налаштування → Поштові подiї.

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