Многосайтовость в Битриксе на разных доменах. Многосайтовость битрикс
Многосайтовость Битрикс
Клиенту нужно было сделать несколько сайтов, основной site.com и региональные poddomen.site.com, … на поддоменах. Для этого было выбрано решение многосайтовости от компании Битрикс.
Техническое задание:
- Единый каталог на всех проектах.
- Одна панель управления.
- Разные мета теги title для регионов.
- Хостинг — Beget.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Копируем файлы .access.php и index.php в корневую директорию регионального сайта.
Настраиваем общий доступ к папкам bitrix и upload. Для этого переходим на site.com/bitrix/ в файловом менеджере Beget. В меню находим ИНСТРУМЕНТЫ — НАСТРОИТЬ ОБЩИЙ ДОСТУП К ТЕКУЩЕЙ ДИРЕКТОРИИ — выбираем ЧТЕНИЕ И ЗАПИСЬ, ВКЛЮЧАЯ ВЛОЖЕННЫЕ ПАПКИ, нажимаем Открыть доступ.
Затем переходим на site.com/upload/ и проделываем то же самое.
Если все сделано правильно, на этих папках появиться соответствующий значок.
Административная панель CMS
В Битрикс заходим — Настройки — Настройки продукта — Сайты — Список сайтов — Кнопка «Добавить сайт».
Указываем:
- ID сайта латинскими и цифрами, например s2.
- Оставляем галочку Активен.
- Название.
- По умолчанию — нет, потому что это не основной сайт.
- Доменное имя — poddomen.site.com
- Папка сайта — /
- Сортировка — 1
- Путь к корневой папке веб-сервера для этого сайта — /путь-до-папки/poddomen.site.com/public_html
- Название веб-сайта
- URL сервера (без http://): poddomen.site.com
- E-Mail адрес по умолчанию
- Язык: [ru] Russian
- Региональные настройки: ru
- Почтовые шаблоны — не создавать.
- Выбрать шаблон.
Не забудем проверить настройки основного сайта. При установке по умолчанию там не указаны важные пункты.
Еще файлы
Если на всех проектах многосайтовости используются одни и те же разделы, страницы и инфоблоки, нужно перенести эту файловую структуру.
Обязательно перекиньте на поддомен .htaccess и urlrewrite.php
Мета теги title для регионов
Так как инфоблок каталога один для всех сайтов, необходимо решение для приведения title к следующему виду.
- Для Московского сайта — 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>+7(495) 265-72-22</div>
<? } else { ?>
<div>+7(499) 555-33-33</div>
<? } ?>
Заменит телефон на всех сайтах отличных от s1.
Если есть какие-то вопросы по всему вышеизложенному пишите в комментариях. С удовольствием отвечу. Спасибо. Не забудьте поделиться статьей в социальных сетях.
saytov.com
Многосайтовость в Битриксе на разных доменах
Привет, Друзья!
Сегодня мы поговорим о том, как сделать несколько совершенно разных сайтов на одной установке Битрикса. Раньше я эту тему уже освещал (вот ссылка на видео), но тогда мы говорили о нескольких сайтах на одном домене, сейчас посмотрим как это сделать на разных доменах.
Вот, например, купили мы Битрикс один раз и сделали на нем корпоративный сайт. А через годик вдруг решили – давайте-ка мы еще и интернет-магазин сделаем. Так вот, на Битриксе Вам не придется покупать еще лицензию для создания этого нового сайта.
Битрикс дает нам возможность сделать 2 сайта на одной купленной лицензии. Или больше сайтов, смотря сколько расширений лицензии для дополнительных сайтов Вы купили (они в разы дешевле отдельной лицензии).И это могут быть совершенно разные сайты. Один может быть простым сайтом компании, а второй может быть интернет-магазином. Объединять их будет только общая админка, общие бюджеты пользователей, общие шаблоны страниц и некоторые другие вещи, подробнее в видео ниже. И еще, эти сайты должны стоять на одном физическом сервере.
Для установки дополнительных сайтов на Битриксе в режиме многосайтовости на разных доменах не надо ставить движок еще раз, но надо настраивать хостинг и покупать новые домены или настраивать поддомены у существующих.
Это видео не для всех. Оно немного сложновато будет для тех, кто совсем не разбирается в серверах, никогда не слышал слова Linux и совсем не понимает что такое консоль и SSH.
Я показываю реальный пример, как сделать 2 разных сайта – на домене ad-files.ru я поставлю типовой интернет-магазин, а на домене shop-usability.ru я разверну корпоративный сайт производственной компании. Все настройки я буду делать на своем VPS под управлением Debian GNU/Linux, с помощью панели управления ISP manager, файлового менеджера WinSCP, SSH консоли PuTTY и прямых рук :)
Ну что, смотрим:
На всякий случай повторю ссылку на учебный курс от разработчиков про многосайтовость: ссылка
На этом сегодня все! Не забываем жать на социальные кнопки слева и отписываться в комментах!
Битрикс. Многосайтовость без использования дополнительной лицензии
07.05.201613.05.2017Иногда возникает необходимость на одной лицензии 1С-Битрикс запустить несколько сайтов. Именно для этого случая и предназначена дополнительная лицензия в структуре лицензирования программных продуктов 1С-Битрикс. И для крупных сайтов многосайтовость должна быть именно на разных лицензиях, чтобы корректно была реализована привязка сущностей к конкретному сайту. Однако, когда у вас стоит задача запустить корпоративный сайт, блог, форум ... и все это должно быть на разных доменах, вот тут возникает вопрос: "А зачем платить больше"
Иногда возникает необходимость на одной лицензии 1С-Битрикс запустить несколько сайтов. Именно для этого случая и предназначена дополнительная лицензия в структуре лицензирования программных продуктов 1С-Битрикс. И для крупных сайтов многосайтовость должна быть именно на разных лицензиях, чтобы корректно была реализована привязка сущностей к конкретному сайту. Однако, когда у вас стоит задача запустить корпоративный сайт, блог, форум ... и все это должно быть на разных доменах, вот тут возникает вопрос: "А зачем платить больше".
Еще раз повторюсь: решение ни в коем случае нельзя применять для сложных сайтов (например, если вы примените это решение для интернет-магазина, и разный домен будет разным магазином, то вы получите кашу в корзине товаров, т.к. в корзину будут собираться товары со всех этих магазинов. Это, конечно же можно обойти с помощью различных ухищрений. Но те, кто знают, как это сделать - данный пост навряд ли будут читать:) ).
Итак, у нас имеется VPS (или полноценный выделенный сервер - не важно). Делаем обычную многосайтовость на доменах (т.е. на стороне сервера под каждый домен создаем отдельные папки, а папки ядра подтягиваем символическими ссылками) за одним исключением: в базе данных сайта мы не заводим дополнительный сайт! Т.е. в админке (настройки-настройки продукта - сайты - список сайтов) у нас остается один единственный сайт.
А дальше имеем танцы с бубном:)
Создаем шаблон под наш дополнительный сайт по всем правилам создания шаблона и этот шаблон применяем для условия выполнения выражения php. Для этого открываем для редактирования сайт в настройках продукта, прокручиваем экран до выбора шаблонов, выбираем нужный шаблон, задаем сортировку применения правил (она должна быть меньше сортировки основного сайта). Тип условия устанавливаем "Выражение php" и в поле с выражением задаем значение:
Вместо 'newdomain.pai-bx.com' вы, конечно же задаете свой домен :)
Вот такой вот несложный фокус позволит сделать несколько сайтов на одном домене, на одной лицензии. Только в лицензии не забудьте указать все домены, по которым может отвечать ваш сайт.
pai-bx.com