Буквально недавно мы выпустили долгожданные Сайты24 в коробке. Здесь и далее речь про БУС, для Б24 отдельная песня. И вот уже спрашивают, а как вынести сайты на свой домен?
[spoiler]
Собственный домен в Сайтах24 базируется на отдельном сайте в главном модуле. Которые, кстати, теперь бесплатны в версиях выше Старта
Как его добавить и чтобы он заработал по новому домену, я оставлю за рамками данной статьи. Будем считать, что у нас уже есть добавленный сайт главного модуля, который отвечает по адресу mylp.ru, и вы хотите, чтобы по данному адресу открывались ваши лендинги.
Кстати, этот сайт уже сразу добавится в списке сайтов для лендингов, где вы даже сможете уже создавать страницы, вот правда без публикации.
Важный момент! Для корректной публикации, лучше публиковать именно на новом домене mylp.ru. Так как он работает под тем же Битрикс, вам просто нужно будет перейти в админку под новым адресом.
Ну и финальный штрих – просто идем в настройки Сайты24 и там ставим работу от корня Вот и все.
Важно! По данному пути вам ничего не надо создавать. Если модуль встретит там файл, он не разместит там свой служебный компонент. Соответственно, если у вас там находится файл index.php, его следует удалить.
Опережая вопросы про документацию в целом. Коллеги, очень хочу с вами поделиться сделанным. Как с этим жить и как работать. Надеюсь, скоро это смогу сделать.
Ссылки по теме – как добавить Сайт.
04.07.2018 19:23:52
Хотел бы поделиться своей историей успешной настройки Сайты24 на редакции Старт, благодаря службе поддержки Битрикс.
Возможно вам это поможет.
Добавлю что бы сменить страницу (выбать нужный макет отображения вашего шаблона из раздела "Сайты24") нужно:
Администрирование -> Сайты 24 -> Ваш сайт -> значек настройка ( шестеренка) -> Форма "Настройки сайта" -> Поле "Главная страница" -> Ваш шаблон лендинга
Было бы здорово, если бы вы описали более подробно ошибку, с которой столкнулись, и как ее воспроизвести. Пока не совсем понятно.
Написал вам в личку.
Содержимое index.php для встраивания лендинга в шаблон сайта
// @see intranet / landing
// prepare init (@tmp bug fix for post action)
if (isset($_REQUEST['path']))
{
$urlParts = parse_url($_REQUEST['path']);
if (isset($urlParts['query']))
{
foreach (explode('&', $urlParts['query']) as $part)
{
if (strpos($part, '=') !== false)
{
list($k, $v) = explode('=', $part);
$_GET[$k] = $v;
}
}
}
}
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/header.php');
?>
<?
$APPLICATION->IncludeComponent(
'bitrix:landing.pub',
'',
array(
'HTTP_HOST' => $_SERVER['HTTP_HOST'],
'PATH' => 'catalog' /* путь к созданной страницы лендинга */
),
null,
array(
'HIDE_ICONS' => 'Y'
)
);
?>
<?require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/footer.php');?>
Самый важный вопрос, как исключить перекрытие стилем шаблона, стиля лендинговой страницы. Подскажите, как лучше это сделать?
1) свою секцию создать не получилось
2) самый простой способ сделать свой блок - это скопировать блок из /bitrix/blocks/bitrix в /bitrix/blocks/mycompany, дадее дать уникальное имя папке с блоком и поправить языковые константы
3) основная документация по блокам (как добавлять редактируемые участки) тут
4) без проблем создать блок на основе компонента, но тут одно но, в манифесте может быть либо описание полей блока, либо настройки компонента.
5) чтобы новый блок появился в меню надо отчистить кэш
6) Если внесли изменения в блок, а он уже есть на сайте, надо удалить блок и добавить его заново
Вы делаете с виду все корректно. Какой блок перенесли и как переименовали? Что в манифесте у него?
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true)
{
die();
}
use \Bitrix\Main\Localization\Loc;
return array(
'block' => array(
'name' => Loc::getMessage('LANDING_BLOCK_MENU_PG_NAME'),
'section' => 'menu',
),
'cards' => array(
'.landing-block-node-menu-list-item' => array(
'name' => Loc::getMessage('LANDING_BLOCK_MENU_PG_NODES_LANDINGBLOCKNODEMENULISTITEMLINK'),
),
),
'nodes' => array(
'.landing-block-node-menu-list-item-link' => array(
'name' => Loc::getMessage('LANDING_BLOCK_MENU_PG_NODES_LANDINGBLOCKNODEMENULISTITEMLINK'),
'type' => 'link',
),
'.landing-block-node-menu-logo-link' => array(
'name' => Loc::getMessage('LANDING_BLOCK_MENU_PG_NODES_LANDINGBLOCKNODEMENULOGOLINK'),
'type' => 'link',
'group' => 'logo',
),
'.landing-block-node-menu-logo' => array(
'name' => Loc::getMessage('LANDING_BLOCK_MENU_PG_NODES_LANDINGBLOCKNODEMENULOGO'),
'type' => 'img',
'group' => 'logo',
'dimensions' => array('width' => 180, 'height' => 60),
),
),
'style' => array(
'block' => array(
'type' => array('display', 'background-color', 'background-gradient'),
),
'nodes' => array(
'.landing-block-node-menu-list-item-link' => array(
'name' => Loc::getMessage('LANDING_BLOCK_MENU_PG_STYLE_LANDINGBLOCKNODEMENULISTITEMLINK'),
'type' => 'typo',
),
),
),
'assets' => array(
'ext' => array('landing_menu'),
),
'groups' => array(
'logo' => Loc::getMessage('LANDING_BLOCK_MENU_PG_NODES_LANDINGBLOCKNODEMENULOGO'),
),
);
Блок появляется в панели на следующий день и все работает, кэш чистил в админке БУС - не помогло. Еще у этого блока кнопки редактирования съезжают вверх, под верхнее меню сайтов24 и если добавляешь еще какой нибудь блок с меня - они накладываются друг на друга.
Еще пара вопросов:
1) Хочу перенести сайт на сайты24, но проблема с урлами: каталог услуг находиться
2) Обрезается тег description, можно ли сделать чтобы тег не обрезался? Как в БУС. У меня описание больше по количеству символов и он весь отображается в снипете в выдаче яндекса, можно ж предупреждать о том что он больше рекомендуемого но обрезать на мой взгляд не правильно.
В поддержке у вас веселые ребята - на любой вопрос отправляют либо в идеи, либо отправляют заявку в разработку и говорят: ждите)
Пока многоуровневые ссылки не поддерживаются, возможно этот функционал появится позже.
С уважением,
старший специалист техподдержки
Митрофанов Михаил
Старший СПЕЦИАЛИСТ блин
Антон, скажите пожалуйста, а как теперь удалить опубликованный сайт? Получается что урл
Скажите пожалуйста еще по блокам интернет-магазина, как настроить ЧПУ, чтобы при нажатии на товар в списке, открывалась детальная страница? В настройках ЧПУ есть "#system_catalogitem" это нужно? Писал в поддержку, отправили заявку в разработку) ничего не пояснив
Поправить можно здесь
landing/lib/hook/page/metamain.php:16
Там увидите строчки
'maxlength' => ...
Поправить можно здесь
landing/lib/hook/page/metamain.php:16
Там увидите строчки
'maxlength' => ...
1.В папке bitrix/blocks создал папку /test
2. В неё скопировал шаблон 01.big_with_text переименовал его в test
3. В lang дал ему имя test
4. Загрузил другую картинку preview.jpg
5. Очистил весь кеш.
Но в списке блоков, мой блок не отображается.
- создать хост на сервере, прилинковать ядро, зарулить домен на сервер
- не забыть скопировать .htaccess, чтобы работали ЧПУ страницы
- не забыть скопировать/настроить .access.php, чтобы сайт был доступен для анонимов
- создать новый сайт в админке (лучше сразу из по нового домена), указать путь к корню сайта
- в настройках модуля "Сайты24" (/bitrix/admin/settings.php?lang=ru&mid=landing) указать корень сайта (просто /)
- проверить в корне нового сайта, что в файле urlrewrite.php применились настройки
- в настройках сайта, на странице со списком его страниц (/bitrix/admin/landing_site.php?lang=ru&site=te), в шестеренке - выбрать новый домен.
- страница редактирования лендинга не работала с включенной опцией главного модуля "перемещать весь javascript в конец страницы". ломался js код, редактор не загружался.
вот созданная страница
Собственно, в этом посте я подробно и описал как это сделать Перечитайте еще раз внимательно, пожалуйста.
Если я правильно понял ваш вопрос, то:
1. Сайт привязывается к домену на основании настроек сайта (там выбирается домен).
2. В зависимости от домена формируются уже ссылки на страницах сайта.
Вариант 1: те href ссылки, которые абсолютные в html тексте (то есть href="
Вариант 2: эти асболютные ссылки попадают в какие-то готовые html-фрагменты железобетонно в момент нажатия "Опубликовать" в админке. В этом случае никаким хостом в запросе проблему не решить, а нужно в админку войти с правильного домена и методично "Опубликовать" заново все страницы
Вариант 3: Абсолютные ссылки у лендинга получаются не из-за внутренней логики, а из-за каких-то неправильных настроек у нас. Все-таки более системным подходом для сайтов всегда является выдавать относительные ссылки.
Ссылки внутри лендингов живут в двух вариантах:
1. href="#landing123" – страницы
2. href="#block123" – блоки (но они всегда расположены на странице)
(есть еще третий вариант href="#system_<something>", но они превращаются в первый вариант.
При выводе страницы система заменяет первый вариант ссылок на полные адреса страниц. Второй вариант ссылок также на полные адреса страниц, добавляя якорь блока.
Адрес страницы всегда в свою очередь формируется строго по правилу:
протокол + домен_сайта + путь_сайта + путь_страницы
Дальнейшее поэтому связано было с тем, как убедить битрикс принять запросы с другого домена, чтобы ссылки правильно формировались.
И тут помогло странное магическое поле, про которое тоже хотелось бы понять как оно работает. В настройках сайта (лендинг) есть поле "Адрес сайта". Возможно оно не до конца перенесено из Битрикс24, но это выпадающий список, но нередактируемый (рядом нет ни "карандаша" ни попапа), который содержит основной домен сайта (= Настройки модуля - Главный модуль - URL сайта) и каким-то странным образом оказавшийся там домен, к которому я пытаюсь прикрутить этот лендинг. Поиск в исходниках вроде как приводит к таблице b_landing_domain, но кто ее расширяет и при каких условиях, понять из кода я не смог.
В общем ниже способ, как сделать лендинг сайт работающим на своем домене и правильными ссылками в режиме многосайтовости на одном домене. Я сильно подозреваю, что что-то я все равно мог упустить или этот способ ненадежен, но думаю, что все равно стоит озвучить. Правда с поправкой, что этот домен есть в этом выпадающем списке (возможно Антон расскажет как влиять на его содержимое)
- Есть работающий сайт в локальной сети за гейтвеем (далее будут настройки на случай nginx)
- В лендинге в настройках сайта выбран этот домент в поле "Адрес сайта" (если вам удастся его здесь заполучить или нам расскажут как это сделать)
- "Путь к публикации относительно сайта" не меняется (/pub/site, если вы ничего не меняли)
- В nginx.conf есть следующая секция (ниже расшифровка)
{landingdomain} - домен, к которому вы прикручиваете лендинг
{ip_of_bitrix_site} - ip-адрес в локальной сети битрикс-сайта, куда пробрасываются запросы{landingsubpath} - под-путь этого лендинг-сайта внутри битрикса. /pub/site/ поразумевается как продолжение, если вы его не меняли.
Несущественные параметры nginx-а опущены, чтобы была понятна суть. Кто умеет настраивать - поставит правильные или свои.
Теоретически, если этот шаблон соблюсти, то можно заводить новые домены, ссылающиеся на другие лендинги, не переводя сайт в многосайтовость на разных доменах. Но еще раз повторюсь, только если станет понятно как редактировать поле "Адрес сайта"
- сначала просто пробросить этот домен на корень битрикса без хитростей (но конечно с proxy_set_header Host $host)
- войти в админку (с этого домена), довести выпадающий список "Адрес сайта" до добавления этого домена (кажется достаточно посетить свойства своего лендинга)
- после этого уже перенастроить проброс на танцы с корнем, описанные в предыдущем посте.Начиная с этого момента в выпадающем списке будет этот домен, который спокойно нужно выбрать для этого лендинга.
В итоге сейчас имеет проверенным образом конфигурация:
- Битрикс с многсайтовостью на одном домене
- Два лендинга на одном домене
- Два сторонних домена, каждый из которых путем описанных манипуляций с nginx-ом работает со своим лендингом и все ссылки формируются корректно
Подскажите, есть ли возможность ручной обработки 404 ошибки не залазя в кишки landing.pub? Что я имею в виду. Есть сайт на БУС - чистый лендинг (настроен на корень, одна страница). При наборе после имени сайта любого текста отображается лендинг, тут все хорошо, а при наборе в строке любого xxx.php (например, site.ru/error.php) - отображается заглушка с сообщением "Сайт не найден", а хочется сделать свою заглушку, как сделана страница 404.php в БУС и в моем случае безусловно переадресовать на главную сайта через header Location (при этом чтобы работали именно 404 ошибки, и на другие лендинги, если они появятся, можно было перейти, в админку БУС зайти и т.д.). Возможно такое сделать не исправляя типовой компонент, или может такая возможность появится в ближайшем будущем?
Почему-то у меня не моделируется такая проблема. Если указываю файл.php, которого нет, то показывается заглушка лендинга. Вы можете написать в техподдержку для анализа проблемы.
Написал в техподдержку, мою проблему подтвердили и написали, что создано обращение в отдел разработки:
"Обработка 404 ошибки и возможность настройки"
Номер заявки: 105737
Я так понимаю, вам, Антон, оно и прилетит )))
На коробочном Битриксе есть портал и там же страницы созданные в Сайты24.
Как их интегрировать между собой:
1. нужно добавить компонент авторизации в Сайты24 закрыв часть страниц для не авторизованных пользователей.
2. показывать авторизованным пользователям информацию из CRM портала
3. иметь возможность встроить в страницы Сайты24 компонентов, новости например для авторизованных.
Денис
К сожалению, кейс не понял все же какой пример парочки таких страниц, которые требуется сделать, можно?
.
1. Ставим чистую установку.
2. Модуль Сайты 24 - указываем папку /
3. Удаляем в корневой папке файл index.php
4. Удаляем в Настройках - Сайты - сайт с чистой установкой
5. Устанавливаем сайт - указываем шаблон landing24
6. Переходим в админку - Сайты 24 - Создаем сайт - Публикуем
7. Наслаждаемся жизнью
Enjoy!
Может подскажете, теперь домен открывается без www а с www нет. Как настроить?
На первом многосайтовость десяток доменов и сайтов24
Перенести надо один сайт на Сайтах24.
КАК!??
Что изначально было:
1) Работающий старый сайт на старом домене на 1С-Битрикс Стандарт
2) Новый домен на том же самом хостинге что и старый сайт
Что сделала:
3) Зашла в панель управления хостингом, создала папку для нового домена, скопировала из папки со старым сайтом в папку нового сайта 2 файла .htaccess и .access.php, спасибо за совет в комментарии выше, из старого работающего сайта и 1 папку bitrix
3) После этих манипуляций я смогла зайти в раздел администратора по пути с теми же паролем и логином что и в старый сайт захожу
4) Создала сайт в разделе Настройки-Сайты, зашла в Настройки-Настройки модуля-Сайты24 и установила чтобы путь для этого сайта был просто "/"
5) Зашла в сайты24 и для нового сайта создала новый сайт24 из шаблона. Надеюсь не запутала.
6) Зашла в настройки сайта и нажала Опубликовать
7) Проверила - сайт доступен по адресу нового домена.
8) Теперь осталось заполнить нужным контентом и донастроить)
Буду рада, если кому-то поможет мой опыт.
Моя проблема по публикации лэндинга:
1. Прописываю в настройках
2. Захожу в настройки страницы и уже вижу, что что-то не то
3. В самом лэндинге нажимаю опубликовать и получаю
Выводы: публикация не получается, url нужный не прописывается. Что делать?
Был тестовый сайт, на котором велась разработка site.test.ru к нему был привязан модуль Сайты24. Сейчас все переехало на основной site.ru
Пытаюсь провести интеграцию Битрикс24, но система интегрирует site.test.ru, которого уже не существует, соответственно интеграция не проходит.
Сам лендинг отображается в предпросмотре
В настройках лендинга Сайты24 есть пункт адрес сайта, я там поставил site.ru
В настройках основного сайта поставил код шаблона Landing 24, номер сортировки меньше, чем у основного.
Магазин - CRM - интеграция с CRM - успешно
Как убрать старый домен и прицепить основной к сайтам24, чтобы провести интеграцию с битрикс24?
Например, есть сайт на БУС с разделом статьи, которые выполнены на инфоблоке и выводятся компонентом news. Но поскольку встроенные визуальный редактор оставляет желать лучшего, то классно было бы использовать редактор Сайты24 и водить содержимое страницы (блоков) в детальной странице статьи/новости.
То есть пользоваться конструктором контента Сайты24, но выводить такую страницу внутри сайта БУС
кто бы подсказал...
У меня вот какая проблема: при наборе несуществующего адреса показывается соответствующая страничка, но отдает код 200, а не 404