1С-Битрикс многосайтовость на одном домене

Рассмотрим общую информацию об организации многосайтовости 1С-Битрикс на одном домене, и некоторые нюансы, которые не освещены в официальной документации.

Многосайтовость такого типа часто используется для создания мультиязычного сайта. Обычно эти сайты имеют урлы двух видов : site.ru , site.ru/en/ или site.com/ru/ , site.com/en/

Основная идея многосайтовости в Битриксе это 1 сайт - 1 папка со вложенным в неё содержимым сайта. Т.е. структура может выглядеть либо так (1):

/www/s1/ - первый сайт /www/s2/ - второй сайт

Либо сяк (2):

/www/s1/ - первый сайт, /www/s1/s2 – второй сайт.

DocumentRoot веб сервера должен смотреть в корневую папку. В случае (1) это /www/ во втором случае (2) это /www/s1/

Рассмотрим второй случай в плане настроек административной части. Идем в настройки сайтов (Настройки > Настройки продукта > Сайты > Список сайтов)

Выбираем "Изменить" параметры сайта №1 и указываем в них:

Сайт №1:

Название: site1
Доменное имя: оставить пустым
Папка сайта: /s1/
Название сайта: Корпоративный сайт компании "Название компании"
URL сервера:www.site.com/s1
Путь к корневой папке веб-сервера для этого сайта: оставить пустым

В параметре Папка сайта необходимо указывать путь относительно корня к каталогу в котором расположена публичная часть сайта. Путь к корневой папке веб-сервера для этого сайта не используется в данном способе настройки многосайтовости и должен быть пустым для всех сайтов.

Аналогично настроим параметры сайта №2:

Название: site2
Доменное имя: оставить пустым
Папка сайта: /s2/
Название сайта: Интернет-магазин компании "Название компании"
URL сервера:www.site.com/s2
Путь к корневой папке веб-сервера для этого сайта: оставить пустым

Теперь перейдем к некоторым нюансам первого случая о которых не пишут:

urlrewrite.php для этих всех сайтов один общий и лежать он должен в DocumentRoot. т.е. в /www/. Если вы разложите свои urlrewrite по папкам /www/s1/ и /www/s2/ - это работать не будет.

Аналогично с этим и 404-я страница должна быть там же в корневой папке. Для урлов вида www.site.com/s1/non_existing_page и www.site.com/s2/non_existing_page вы можете определить обработку 404-й странциы которыми сможете показывать 404.php из любого места (например конкретных папкок сайтов), но если у вас будет урл вида www.site.com/non_existing_site/ - вам не останется ничего другого как показать страницу /www/404.php

robots.txt так же должен быть там, в корневой папке. Ну и если у вас корневого сайта нет как такового. т.е. в случае site.com/ru/ , site.com/en/ у вас нет урла site.com - не забывайте делать редиректы из index.php корневой папки.

В многосайтовости случая (2) всё более очевидно, все эти файлы органично вписываются в вышестоящий по иерархии сайт s1.

{{ message }}

{{ 'Comments are closed.' | trans }}