• МАКС: М.Базаров
  • Телеграм: М.Базаров
  • E-mail: mihail@bazarow.ru

Хочу поставить страницу-заглушку вместо стандартной, которая показывается, когда закрыт публичный доступ на сайт. Как мне это сделать?

Вопрос задан: 25 мая 2026 в 01:00 | Просмотров: 49 Использованные MCP инструменты: searchDocs, liveApiGetDocResource, liveApiFindFunction

Задайте свой вопрос — Работает AI в связке с MCP сервером. Перепроверяйте важную информацию.

Как сделать кастомную страницу-заглушку вместо стандартной

В 1С-Битрикс есть два основных подхода. Рассмотрим оба.

Способ 1. Стандартный (только текст, простая заглушка)

Этот способ подходит, если вам нужно просто вывести текстовое сообщение.

  1. Перейдите в административном разделе: Настройки → Настройки продукта → Настройки модулей → Главный модуль.
  2. Включите опцию «Закрыть сайт для посетителей».
  3. В поле ниже укажите текстовое сообщение, которое увидят посетители.

Однако это будет просто текст, а не полноценная HTML-страница с дизайном. Для красивой страницы-заглушки используйте Способ 2.

Способ 2. Программный (полноценная HTML-заглушка, рекомендую)

Этот способ позволяет вывести любую вёрстку для всех неавторизованных пользователей (кроме администраторов). Реализуется через событие OnBeforeProlog.

  1. Создайте файл заглушки, например: /coming-soon/underconstruction.html — с вашей вёрсткой, логотипом, счётчиками и т.д.

  2. Создайте или отредактируйте файл /bitrix/php_interface/{ID_САЙТА}/init.php (например, /bitrix/php_interface/s1/init.php для сайта с ID s1) и добавьте туда код:

    <?php
    AddEventHandler("main", "OnBeforeProlog", "MySiteClosedHandler", 50);
    function MySiteClosedHandler()
    {
        global $USER;
        if (!is_object($USER))
        {
            $USER = new CUser();
        }
        // Если пользователь не администратор — показываем заглушку
        if (!$USER->IsAdmin())
        {
            include($_SERVER["DOCUMENT_ROOT"] . "/coming-soon/underconstruction.html");
            die();
        }
    }
    
  3. Готово! Все посетители, кроме администраторов, будут видеть вашу страницу-заглушку. Администраторы (ID группы 1) увидят сайт в обычном режиме.

Если нужно закрыть только один сайт из нескольких

В настройках Главного модуля опция «Закрыть сайт для посетителей» закрывает сразу все сайты. Чтобы закрыть только один, используйте Способ 2, предварительно проверив ID сайта через константу SITE_ID:

<?php
AddEventHandler("main", "OnBeforeProlog", "MySiteClosedHandler", 50);
function MySiteClosedHandler()
{
    global $USER;
    if (!is_object($USER))
    {
        $USER = new CUser();
    }
    // Закрываем только сайт с ID = 's1'
    if (SITE_ID === 's1' && !$USER->IsAdmin())
    {
        include($_SERVER["DOCUMENT_ROOT"] . "/coming-soon/underconstruction.html");
        die();
    }
}

Важно: такой способ (с die() в обработчике) отключает выполнение заданий cron для сайта. Если сайт использует cron, рассмотрите вариант через настройки веб-сервера (например, .htaccess редирект)