Как настроить многосайтовость на 1С-Битрикс: один домен, разные домены и проверка без путаницы сайтов

Открыли shop.company.ru – а там корпоративный сайт с чужим логотипом: путаются SITE_ID, DocumentRoot и симлинки. Типичная ошибка из практики – второй домен без симлинков /bitrix или с «чужой» сортировкой поддомена. На 1С-Битрикс: Управление сайтом (это не Bitrix24) многосайтовость держит несколько публичных витрин на одной лицензии и одной базе. Ниже – развилка "один домен или разные", поля Списка сайтов, симлинки ядра и чек-лист проверки Host, чтобы на каждом домене открывался свой сайт.

Многосайтовость БУС – это несколько сайтов в одной админке и одной БД, а не отдельные копии ядра. Сначала выберите режим: подкаталоги на одном домене или разные домены с симлинками /bitrix, /upload, /local. Система выбирает сайт по домену, папке и сортировке; если домен не совпал – откроется сайт по умолчанию. Копировать папку bitrix на второй DocumentRoot нельзя: после обновления ядра второй сайт ломается, плюс это нарушает лицензию.

Речь про коробочную CMS на своём хостинге для Битрикс, а не про облачный портал. Мультиязычность через папки и ID сайта – смежный кейс: полный разбор языков и hreflang лучше смотреть в отдельном гайде про мультиязычный сайт на Битрикс. Лимит числа сайтов зависит от редакции: на "Старт" – максимум два; подробнее в материале как выбрать редакцию Битрикс.

Когда нужна многосайтовость CMS и когда лучше отдельная установка

Сравнение: многосайтовость CMS против отдельной установки 1С-Битрикс

Делайте многосайтовость, когда проекты связаны: общий каталог товаров, одна команда админов, единые пользователи и обновления ядра. Не делайте её "на всякий случай", если сайты полностью независимы по бизнесу, правам и срокам релизов – тогда проще две установки.

Критерий Многосайтовость Отдельная установка
Общий каталог / одна БД Да, удобно Нужен обмен или дубли
Разные бренды, один подрядчик Да, одна админка Лишние копии ядра
Жёсткая изоляция прав и релизов Сложнее Проще и безопаснее
Редакция "Старт" До 2 сайтов Свои лимиты на каждую копию

Рекомендация: если маркетинг просит витрину магазина на том же ядре, что и корпоратив – многосайтовость оправдана. Если второй проект чужой компании с отдельным доступом к серверу – ставьте отдельно. Перед стартом убедитесь, что ядро уже стоит корректно: см. установку 1С-Битрикс на хостинг.

Схема выбора:
Нужны связанные витрины → многосайтовость → один SSL и общие разделы: один домен (подкаталоги) → независимые URL/бренды: разные домены + симлинки ядра

Способ 1: настройте многосайтовость на одном домене через подкаталоги

Workflow: многосайтовость Битрикс на одном домене через подкаталоги

На одном домене сайты живут в папках вроде / и /shop/. Система смотрит на поле "Папка сайта". "Доменное имя" и "Путь к корневой папке сайта" (DocumentRoot) в этом режиме обычно оставляют пустыми.

  1. Создайте на диске папку второго сайта (например /shop/) рядом с корнем первого.
  2. В админке откройте Настройки → Настройки продукта → Сайты → Список сайтов и добавьте сайт с новым ID (s2).
  3. Укажите уникальную "Папку сайта": для главного "/", для второго "/shop/" – папки не должны совпадать.
  4. В "URL сервера" пропишите путь с каталогом, например https://company.ru/shop/.
  5. Оставьте "Доменное имя" и абсолютный DocumentRoot пустыми, если оба сайта в одном виртуальном хосте.
  6. На вкладке "Шаблоны" назначьте шаблон для s2 и сохраните.

Делайте так, когда оба проекта делят один сертификат и один публичный корень. Не делайте многосайтовость на одном домене разными портами – официальная документация это прямо запрещает. Симлинки ядра здесь обычно не нужны: /bitrix уже общий для всего DocumentRoot.

Способ 2: настройте разные домены и симлинки bitrix/upload/local

Чеклист: разные домены и симлинки bitrix/upload/local на Битрикс

Разные домены (или поддомены) – частый запрос "битрикс многосайтовость разные домены". У каждого сайта свой DocumentRoot, а ядро одно. Симлинк (symbolic link) – это ярлык на папку: второй корень "видит" те же /bitrix, /upload и /local, а не копии файлов.

  1. Создайте второй DocumentRoot (например /home/user/shop_public/) и направьте на него домен в панели хостинга.
  2. Из второго корня сделайте симлинки на /bitrix, /upload и /local основного сайта (команда вида ln -s), не копируйте эти папки.
  3. Скопируйте в корень второго сайта служебные файлы: .htaccess, 404.php и при необходимости .access.php.
  4. В Списке сайтов у обоих сайтов поставьте "Папку сайта" = "/".
  5. Заполните "Доменное имя" без www (shop.company.ru) и абсолютный путь к корню второго сайта.
  6. Для поддомена поставьте сортировку меньше, чем у родительского домена (пример из docs: 400 против 500) – иначе откроется "чужой" сайт.
  7. В проактивной защите добавьте второй хост в список "Хосты/домены".
  8. Сохраните сайт и сразу откройте публичный URL второго домена – шаблон должен быть свой, не корпоративный.

На практике симлинки нужны всегда, когда корни разные.

Не копируйте /bitrix "чтобы быстрее": после обновления одного ядра база меняется, второй сайт отваливается. Часто ломается именно второй DocumentRoot, если кто-то скопировал папку «на всякий случай». На shared-хостинге удобно смотреть готовую инструкцию провайдера; для Битрикс часто берут Beget – там же есть гайд по мультисайтовости на движке. HTML-кеш на разных доменах не работает; для ускорения смотрите Композит.

Разведите контент, шаблоны и urlrewrite по SITE_ID

SITE_ID – короткий код сайта в системе (s1, s2). По нему вешают шаблоны, фильтруют каталог и пишут правила ЧПУ. ЧПУ (человекопонятные URL) крутятся через urlrewrite.php: файл с правилами "красивых" адресов.

Общий инфоблок (каталог): в настройках ИБ в поле "Сайты" отметьте все нужные сайты. Если ассортимент пересекается частично – добавьте свойство привязки к сайту и фильтр по SITE_ID в компонентах, иначе витрина "потечёт" чужими товарами. Заказы, корзина, налоги, robots и sitemap привязаны к сайту отдельно – это нормально.

На каждом публичном корне проверьте .htaccess: запросы без реального файла должны уходить в /bitrix/urlrewrite.php. На nginx в конфиге должна передаваться Host (иначе система не увидит домен). Глубокий разбор 301 и слоёв редиректов – в статье как настроить 301-редиректы на Битрикс; здесь важно только, чтобы на втором корне ЧПУ не давали 404.

Делайте: свой шаблон на вкладке "Шаблоны" для каждого SITE_ID. Не делайте: править urlrewrite "наугад" без ключа сайта – правила могут примениться не к той витрине.

Как система выбирает сайт:
HTTP Host → совпадение "Доменное имя" → совпадение "Папка сайта" → при нескольких кандидатах меньшая сортировка → если ничего не совпало: сайт по умолчанию

Проверьте чек-лист: SITE_ID, Host и обновления ядра

Цель проверки простая: на каждом URL публичка и /bitrix/admin/ показывают нужный сайт, а не соседний.

  1. Откройте оба публичных URL и сравните шаблон/контент глазами.
  2. Зайдите в /bitrix/admin/ с каждого домена и убедитесь, что в шапке/отладке виден нужный SITE_ID.
  3. С сервера выполните curl с подменой Host: curl -I -H "Host: shop.example.ru" http://IP/ – ответ должен соответствовать второму сайту.
  4. Проверьте ЧПУ раздела второго сайта (не только главную).
  5. Убедитесь, что /bitrix, /upload, /local – симлинки, а не две копии (ls -la).
  6. Сделайте бэкап перед обновлением ядра: обновляете один раз – оба сайта получают одно ядро.

Делайте проверку Host/SITE_ID до сдачи маркетингу. Не делайте вывод "всё ок" только по главной странице – ломаются обычно разделы каталога и ЧПУ. Если настройка встала комом или после переноса доменов SITE_ID "прыгает", можно обсудить проект с разработчиком, который уже чинил такие связки на production.

Итог для практики: выберите режим → заполните Список сайтов без копирования ядра → разведите шаблоны и ИБ → прогоните curl и админку на каждом Host. Тогда shop-домен перестанет открывать корпоратив, а обновления не разнесут второй корень.

Автор: Максим Мольков, разработчик 1С-Битрикс.
Источники: документация Multisite, курс COURSE_ID=103, урок 287, справка urlrewrite.php, практика хостинга Beget KB.

Частые вопросы

Чем многосайтовость на одном домене отличается от разных доменов?

На одном домене сайты живут в подкаталогах: уникальна "Папка сайта", DocumentRoot часто пустой. На разных доменах у обоих Папка "/", заполнены домен без www и абсолютный путь к корню, плюс симлинки ядра между DocumentRoot.

Нужны ли симлинки bitrix, upload и local?

Да, если у сайтов разные корни на диске. Симлинк – ярлык на общие папки. Копировать /bitrix нельзя: после обновления ядра второй сайт ломается и это нарушает лицензию.

Как система выбирает, какой сайт открыть?

По полям "Доменное имя" и "Папка сайта", затем по сортировке. Указание site.ru покрывает поддомены – у поддомена сортировка должна быть меньше родителя. Если совпадений нет, откроется сайт по умолчанию.

Что делать, если открывается чужой сайт?

Проверьте домен без www, Папку "/", абсолютный DocumentRoot, сортировку поддомена и список хостов в проактивной защите. Сверьте SITE_ID в админке на каждом домене и сделайте curl с заголовком Host.

Как сделать общий каталог на оба сайта?

В настройках инфоблока отметьте все нужные сайты в поле "Сайты". Если товары не для всех витрин – заведите свойство привязки и фильтруйте компоненты по SITE_ID, иначе ассортимент смешается.

Почему на втором домене ЧПУ отдают 404?

Скопируйте .htaccess в корень второго сайта и убедитесь, что запросы уходят в /bitrix/urlrewrite.php. На nginx проверьте try_files и передачу Host. Правила urlrewrite при необходимости создавайте с явным SITE_ID.

Обсудить вашу задачу

Было полезно?

Поставьте лайк, если статья помогла разобраться.

Поделиться статьёй

Отправьте тому, кому это пригодится.

Telegram ↗ MAX ↗ ВКонтакте ↗ Одноклассники ↗
Все статьи ↗

Как настроить регистрацию и личный кабинет покупателя на 1С-Битрикс?

Структура шаблонов сайта в Битриксе и поиск header footer

Как настроить скидки и промокоды на 1С-Битрикс: правила корзины и купоны