8 (8452) 32-00-84

Многосайтовость Битрикс

Клиенту нужно было сделать несколько сайтов, основной site.com и региональные poddomen.site.com, … на поддоменах. Для этого было выбрано решение многосайтовости от компании Битрикс.

Техническое задание:

Настройка

Хостинг

Устанавливаем битрикс в директорию site.com.

С помощью программы PuTTY создаем симлинки к папкам upload и bitrix.

Заходим на poddomen.site.com по SSH, и пишем в консоли следующие команды:

ln -s /путь-до-папки/site.com/public_html/bitrix /путь-до-папки/poddomen.site.com/public_html
 
ln -s /путь-до-папки/site.com/public_html/upload /путь-до-папки/poddomen.site.com/public_html

В инструкции на сайте Бегет я нашел такие команды:

cd ~/poddomen.site.com/public_html
ln -s $HOME/site.com/public_html/bitrix bitrix
ln -s $HOME/site.com/public_html/upload upload

Здесь как мы видим сначала переходим на poddomen.site.com, а потом уже создаем ссылки. Если у Вас тот же хостер, советую использовать последний вариант.

Копируем файлы .access.php и index.php в корневую директорию регионального сайта.

Настраиваем общий доступ к папкам bitrix и upload. Для этого переходим на site.com/bitrix/ в файловом менеджере Beget. В меню находим ИНСТРУМЕНТЫ — НАСТРОИТЬ ОБЩИЙ ДОСТУП К ТЕКУЩЕЙ ДИРЕКТОРИИ — выбираем ЧТЕНИЕ И ЗАПИСЬ, ВКЛЮЧАЯ ВЛОЖЕННЫЕ ПАПКИ, нажимаем Открыть доступ.

Затем переходим на site.com/upload/ и проделываем то же самое.

Если все сделано правильно, на этих папках появиться соответствующий значок.

Административная панель CMS

В Битрикс заходим — Настройки — Настройки продукта — Сайты — Список сайтов — Кнопка «Добавить сайт».

Указываем:

Не забудем проверить настройки основного сайта. При установке по умолчанию там не указаны важные пункты.

Еще файлы

Если на всех проектах многосайтовости используются одни и те же разделы, страницы и инфоблоки, нужно перенести эту файловую структуру.

Обязательно перекиньте на поддомен .htaccess и urlrewrite.php

Мета теги title для регионов

Так как инфоблок каталога один для всех сайтов, необходимо решение для приведения title к следующему виду.

Задача как оказалась не из легких, в коробке Битрикс с их SEO для инфоблоков такого решения не нашлось. Техническая поддержка посоветовала использовать Произвольные поля для разделов, и свойства инфоблока для элементов под каждый регион.

Но по моему это самое наихудшее решение, которое только можно придумать. Прописать title для каждого раздела, товара и региона — это просто супер трудозатратная и бестолковая работа.

Предположим у нас на сайте 100 разделов, 2000 товаров и 20 регионов. 2100*20 = 42000. Т.е. контент менеджеру надо вручную заполнить 42000 произвольных полей и свойств. Жесть.

Оставалось либо писать с нуля свое решение или воспользоваться тем, что было на маркетплейсе.

А там я нашел следующее — SEO: Генерация и управление мета-тегами.

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

Заходим в Настройки — Настройки продукта — Настройки модулей — SEO: Генерация и управление мета-тегами. В пункте — «Время кэширования запросов на страницах сайта для ключей/правил» ставим значение 0 (ноль).

Описывать настройки и работу самого модуля я не буду, так как:

Изменение шаблона по SITE_ID

Чтобы не создавать по десятку шаблонов, можно просто написать условия для выведения различной контактной информации в основном шаблоне используя условие по SITE_ID.

Пример кода:

<? $site_id = SITE_ID; if ($site_id == s1) { ?>

    <div class="tel">+7(495) 265-72-22</div>

<? } else { ?>

    <div class="tel">+7(499) 555-33-33</div>

<? } ?>

Заменит телефон на всех сайтах отличных от s1.

Если есть какие-то вопросы по всему вышеизложенному пишите в комментариях. С удовольствием отвечу. Спасибо. Не забудьте поделиться статьей в социальных сетях.