301 редирект при авторизации в битрикс

<?php
 AddEventHandler("main", "OnPageStart", "RedirectToMainDomain");

function RedirectToMainDomain() {
    $subject = $_SERVER["REQUEST_URI"];
    $pattern = '/\/\/+/';
    $countReplace = 0;
    $replaced_url = preg_replace($pattern, '/', $subject, -1, $countReplace);

    if (!preg_match('/\/$/', $replaced_url) && !strpos($replaced_url, '.')) {
        $replaced_url .= '/';
        $countReplace++;
    }

    if ($countReplace > 0) {
        LocalRedirect($replaced_url, false, '301 Moved Permanently');
    }
}

Всем привет! Столкнулась с проблемой, при которой после попытки авторизоваться по ссылке https://site.com/bitrix/admin/ происходит циклический 301 редирект https://site.com/bitrix/admin/?login=yes и нет возможности зайти в админ-панель. Подсказали, что возможно ошибка с конфигурацией файла local/php_interface/init.php, код которого представлен выше. В чем может быть загвоздка?


Ответы (1 шт):

Автор решения: Виктор Карев

У вас происходит редирект по адресу https://site.com/bitrix/admin/?login=yes/

Битрикс не понимает значение yes/ и перекидывает на https://site.com/bitrix/admin/?login=yes, ваш код опять добавляет слэш в конце, и так до бесконечности.

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

→ Ссылка