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, ваш код опять добавляет слэш в конце, и так до бесконечности.
Ошибка в том, что слэш добавляется в конце адресной строки, даже если в ней присутствуют параметры.