23  /  28

Как закрыть только один из сайтов для посещения пользователей

Просмотров: 49154
Дата последнего изменения: 18.11.2019
Сложность урока:
1 уровень - интуитивно все понятно из интерфейса, но почитать стоит.
1
2
3
4
5

В настройках системы есть возможность закрыть сайт для публичного посещения, например, на время каких-либо технических работ. Это делается на странице настроек главного модуля (Настройки > Настройки продукта > Настройки модулей > Главный модуль):

Однако, указанная возможность позволяет выполнить действие только для всех сайтов системы одновременно. Для того чтобы закрыть отдельный сайт в рамках многосайтовой конфигурации, необходимо разместить специальный программный код в файле: /bitrix/php_interface/siteid/init.php

AddEventHandler("main", "OnBeforeProlog", "MyOnBeforePrologHandler", 50);
function MyOnBeforePrologHandler()
{
   global $USER;
   if(!is_object($USER)){
      $USER = new CUser();
   }
   if (!$USER->IsAdmin()){
      include($_SERVER["DOCUMENT_ROOT"]."/coming-soon/underconstruction.html");
      die();
   }
}

где siteid - идентификатор сайта, который нужно закрыть.

Внимание! Учтите, что при добавлении этого кода перестанут работать задания выполняемые через cron Всецело можно сказать одно: если агенты занимают несколько десятых долей секунды, то уже стоит задуматься о переносе агентов на cron.

Подробнее...
.

В файле underconstruction.html следует поместить информационное сообщение, которое будет показано посетителям вместо стандартных страниц сайта.

20
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии