Из-за чего происходит некорректный редирект в Битрикс?

Ссылка скопирована
1 ответ

Сейчас ситуация такая: всех. Появилась проблема, что имеется коробочная версия битрикса и если неавторизованный пользователь открывает урл где расположен бирикс, например bitrix.my-company.ru, то его редиректит на bitrix.my-company.ru/stream/ вместо bitrix.my-company.ru/auth/, так как он не авторизованный, посмотрел.access.php но не скажу, чтобы что-то понял. Вот как это выглядит:

<?
$PERM["index.php"]["2"]="X";
$PERM["index.php"]["3"]="X";
$PERM["upload"]["*"]="R";
$PERM["upload"]["5"]="T_8";
$PERM["/"]["13"]="T_10";
$PERM["/"]["12"]="R";
$PERM["/"]["*"]="R";
$PERM["/"]["2"]="R";
$PERM["about"]["9"]="T_9";
$PERM["company"]["9"]="T_9";
$PERM["apconnect"]["*"]="R";
$PERM["marketplace"]["*"]="R";
$PERM["pub"]["*"]="R";
$PERM["pub"]["5"]="T_8";
$PERM["online"]["*"]="R";
$PERM["desktop_app"]["*"]="R"
?>

Нужно понять: в чем может быть еще проблема?

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Антон С. Ответ

В коробочном Битрикс24 редирект неавторизованного пользователя на /stream/ вместо /auth/ обычно связан не с правами в .access.php напрямую, а с логикой стартовой страницы, модуля intranet/socialnetwork, настройками портала или обработчиком авторизации. .access.php отвечает за права доступа к разделам, но он не всегда определяет, куда именно отправлять пользователя при отсутствии сессии.

Первое, что нужно проверить: это действительно редирект сервера или редирект внутри Битрикса. Откройте URL в инкогнито и посмотрите цепочку:

curl -I https://bitrix.example.ru/
curl -I https://bitrix.example.ru/stream/
curl -I https://bitrix.example.ru/auth/

curl -I https://bitrix.example.ru/ curl -I https://bitrix.example.ru/stream/ curl -I https://bitrix.example.ru/auth/

Если Location сразу указывает на /stream/, смотрите настройки главной страницы портала и правила в .htaccess/nginx. Если сначала отдается HTML, а потом браузер уходит на /stream/, значит срабатывает JS/компонент/логика Битрикса.

В коробке Битрикс24 стоит проверить несколько мест:

  • Настройки главного модуля и модуля intranet: какая страница считается стартовой.
  • Файл /index.php: нет ли include/LocalRedirect на /stream/.
  • /bitrix/php_interface/init.php и local/php_interface/init.php: нет ли обработчика OnBeforeProlog с LocalRedirect.
  • Правила web-сервера: nginx/apache rewrite.
  • Права на /auth/ и /stream/ в административном разделе.

Если нужно жестко отправлять неавторизованных на /auth/, лучше делать это не в .access.php, а аккуратным обработчиком с исключениями для служебных URL, ajax, REST, assets и самой страницы авторизации.

addEventHandler('main', 'OnBeforeProlog', static function () {
    global $USER, $APPLICATION;
 
    if ($USER &amp;&amp; $USER-&gt;IsAuthorized()) {
        return;
    }
 
    $path = $APPLICATION-&gt;GetCurPage(false);
    $allowed = ['/auth/', '/bitrix/', '/upload/'];
 
    foreach ($allowed as $prefix) {
        if (strpos($path, $prefix) === 0) {
            return;
        }
    }
 
    LocalRedirect('/auth/');
});

addEventHandler('main', 'OnBeforeProlog', static function () { global $USER, $APPLICATION; if ($USER &amp;&amp; $USER-&gt;IsAuthorized()) { return; } $path = $APPLICATION-&gt;GetCurPage(false); $allowed = ['/auth/', '/bitrix/', '/upload/']; foreach ($allowed as $prefix) { if (strpos($path, $prefix) === 0) { return; } } LocalRedirect('/auth/'); });

Но перед внедрением такого кода обязательно найдите текущий источник редиректа, иначе можно получить циклические переходы или сломать публичные страницы. В вашем фрагменте .access.php видно много прав, но по нему нельзя однозначно сказать, почему выбран /stream/. Я бы начал с поиска по проекту строк stream, LocalRedirect, AUTH и ShowAuthForm.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно