Внутреннее перенаправление функция localredirect ошибка не работает bitrix

 

Здравствуйте!

Столкнулся с такой вот проблемой —

при переносе на хостинг у меня перестал срабатывать LocalRedirect.

На локальной же машине все работает как часы.

Возможно кто то сталкивался,
буду благодарен за любую помощь.

 

Что значит «перестал срабатывать»? В чем это выражается?

 

По логике скрипта после обработки Post данных делается Get редирект.

На локальной машине все впорядке, а на хостинге просто ничего не происходит

футер при этом не выводится, выглядит так как будто выполняется exit

 

Антон Долганин

Администратор

Сообщений: 8512
Баллов: 1056
Регистрация: 17.05.2007

#4

0

21.06.2009 23:28:36

Цитата
BigMax пишет:
По логике скрипта после обработки Post данных делается Get редирект.

А Post-данные добавляются нормально? Дело в том, что после LocalRedirecta страница прекращает исполнение.

Сложно судить на словах. Может быть проблема в обработке, может ошибка интегратора. Лучше вам обратиться в техподдержку и, чтобы не терять времени, сразу с административными доступами.

 

Пользователь 1649

Гуру

Сообщений: 398
Баллов: 281
Регистрация: 05.05.2005

#5

2

22.06.2009 08:44:39

мне в свое время помогло добавление в init.php

Код
global $SERVER_PORT,$HTTP_HOST;
if (($pos = strpos($HTTP_HOST,':')) !== false)
 $HTTP_HOST = substr($HTTP_HOST,0,$pos);
$SERVER_PORT = 80;

$_SERVER["SERVER_PORT"] = $SERVER_PORT;
$_SERVER["HTTP_HOST"] = $HTTP_HOST;
 

Проявление некорректной работы LocalRediret() может быть только одно — перемещает на «левую» страницу или теряет параметры. Если не идёт переадресации, то ошибка возникает до LocalRediret().

Можем помочь в рамках тех. поддержки:

http://dev.1c-bitrix.ru/support/ticket.php?show_wizard=Y

но Вы должны подробно указать как смоделировать проблему.

 

Провел тестирование конфигурации:
Внутреннее перенаправление (функция LocalRedirect) — Не удаётся подключиться к www.мойсайт.com, порт 80
Что это значит? Ввожу в броузере www.мойсайт.com:80 — сайт работает.

 

UP!!!!!!!!!

работал сайт.

на неделю переключился на другой проект.

вернулся обратно, localredirect не работает.

тут решение так и не указано.

 

Такая же проблема, в чём дело непонятно :/

 

Пользователь 41019

Заглянувший

Сообщений: 30
Баллов: 1
Регистрация: 10.04.2009

#10

0

27.08.2012 05:04:23

А я с хостинга не уходил, обновился и редирект исчеззззз :(

Настройка SSL в Bitrix

Вообще в административной части сайта на 1C-Bitrix есть подробная шпаргалка как правильно настроить переезд на https версию сайта. Там вкратце описано как настроить сам хостинг и сайт для корректной работы. Находится эта шпаргалка по этому адресу:

имя_сайта/bitrix/admin/promo_https.php?lang=ru

Но там почему-то забыли написать про один нюанс. После настройки SSL сертификата и включения 301 редиректа на https версию сайта в админке Битрикс вылезет ошибка:

Внутреннее перенаправление (функция LocalRedirect) Ошибка! Не работает.

Внутреннее перенаправление (функция LocalRedirect)

Внутреннее перенаправление (функция LocalRedirect)

Не работает внутреннее перенаправление?

Это легко можно исправить. Вся проблема решается прописыванием в /bitrix/php_interface/dbconn.php:

$_SERVER["SERVER_PORT"] = "443";

Эту строчку нужно добавить в начало или конец файла.

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

Bitrix. SSL(https), nginx — не работает внутреннее перенаправление.

Ошибка появилась после включения в nginx перенаправления на https.

До неё поставил SSL сертификат. Проверил сайт — работает и по https и по http. Всё хорошо. Проверки системы проходит.

Включаем перенаправление в nginx. И получаем ошибку: «Внутреннее перенаправление (функция LocalRedirect)»

Ошибка явно из-за того, что не везде в битриксе стоит динамический протокол(так бы выбрался бы сразу https). Он явно теперь «стучится» по http, а nginx его редиректит, чего не ожидает Битрикс. Вот вам и ошибка.

Решение «влоб» — в файле dbconn.php прописываем строку:

$_SERVER["SERVER_PORT"] = "443";

Однако надо помнить и понимать, что это приводит к несостыковкам с http(порт там 80). Но в моём случае остаётся один https.

Заметили ошибку, можете подсказать еще что-то? — Обращаемся сюда

После настройки SSL сертификата и включение перенаправления на https тестирование Битрикс выдает ошибку Внутреннее перенаправление (функция LocalRedirect) Ошибка! Не работает. Это можно устранить?

Похожие вопросы

Ошибка при обновлении 1С-Битрикс (php 7 на 8) MySQL Query Error?

С чем может быть связана следующая ошибка, и каким образом она решается. Текст ошибки, появляется на странице обновления CMS, а также модулей (при попытке загрузки и установки обновления).MySQL Query Error: delete o1 FROM b_user_access_check o1, b_user_access_check…

Alex

15 дек в 2022


466

1C Bitrix и REST API

Всем привет. Нужна некоторая консультация от разработчиков битрикса) Собираемся делать нативное приложение и нужно сделать так чтобы заказы из приложения и сайта были в одном месте. Может ли битрикс выступать в роли бэка в этом плане? Обмен будет через…

Здравствуйте! Возникла проблема в работе с сайтом

сайт на битриксе.

почему в директории upload папки sale, tmp и uf доступны для редактирования только под рутовым доступом?

Настройка SSL в Bitrix

Вообще в административной части сайта на 1C-Bitrix есть подробная шпаргалка как правильно настроить переезд на https версию сайта. Там вкратце описано как настроить сам хостинг и сайт для корректной работы. Находится эта шпаргалка по этому адресу:

имя_сайта/bitrix/admin/promo_https.php?lang=ru

Но там почему-то забыли написать про один нюанс. После настройки SSL сертификата и включения 301 редиректа на https версию сайта в админке Битрикс вылезет ошибка:

Внутреннее перенаправление (функция LocalRedirect) Ошибка! Не работает.

Внутреннее перенаправление (функция LocalRedirect)

Внутреннее перенаправление (функция LocalRedirect)

Не работает внутреннее перенаправление?

Это легко можно исправить. Вся проблема решается прописыванием в /bitrix/php_interface/dbconn.php:

$_SERVER["SERVER_PORT"] = "443";

Эту строчку нужно добавить в начало или конец файла.

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

 

Здравствуйте!

Столкнулся с такой вот проблемой —

при переносе на хостинг у меня перестал срабатывать LocalRedirect.

На локальной же машине все работает как часы.

Возможно кто то сталкивался,
буду благодарен за любую помощь.

 

Что значит «перестал срабатывать»? В чем это выражается?

 

По логике скрипта после обработки Post данных делается Get редирект.

На локальной машине все впорядке, а на хостинге просто ничего не происходит

футер при этом не выводится, выглядит так как будто выполняется exit

 

Антон Долганин

Администратор

Сообщений: 8512
Баллов: 1056
Регистрация: 17.05.2007

#4

0

21.06.2009 23:28:36

Цитата
BigMax пишет:
По логике скрипта после обработки Post данных делается Get редирект.

А Post-данные добавляются нормально? Дело в том, что после LocalRedirecta страница прекращает исполнение.

Сложно судить на словах. Может быть проблема в обработке, может ошибка интегратора. Лучше вам обратиться в техподдержку и, чтобы не терять времени, сразу с административными доступами.

Поиск по исходникам Битрикс

 

Пользователь 1649

Гуру

Сообщений: 398
Баллов: 281
Регистрация: 05.05.2005

#5

2

22.06.2009 08:44:39

мне в свое время помогло добавление в init.php

Код
global $SERVER_PORT,$HTTP_HOST;
if (($pos = strpos($HTTP_HOST,':')) !== false)
 $HTTP_HOST = substr($HTTP_HOST,0,$pos);
$SERVER_PORT = 80;

$_SERVER["SERVER_PORT"] = $SERVER_PORT;
$_SERVER["HTTP_HOST"] = $HTTP_HOST;
 

Проявление некорректной работы LocalRediret() может быть только одно — перемещает на «левую» страницу или теряет параметры. Если не идёт переадресации, то ошибка возникает до LocalRediret().

Можем помочь в рамках тех. поддержки:

http://dev.1c-bitrix.ru/support/ticket.php?show_wizard=Y

но Вы должны подробно указать как смоделировать проблему.

 

Провел тестирование конфигурации:
Внутреннее перенаправление (функция LocalRedirect) — Не удаётся подключиться к www.мойсайт.com, порт 80
Что это значит? Ввожу в броузере www.мойсайт.com:80 — сайт работает.

 

UP!!!!!!!!!

работал сайт.

на неделю переключился на другой проект.

вернулся обратно, localredirect не работает.

тут решение так и не указано.

 

Такая же проблема, в чём дело непонятно :/

 

Пользователь 41019

Заглянувший

Сообщений: 30
Баллов: 1
Регистрация: 10.04.2009

#10

0

27.08.2012 05:04:23

А я с хостинга не уходил, обновился и редирект исчеззззз :(

Bitrix. SSL(https), nginx — не работает внутреннее перенаправление.

Ошибка появилась после включения в nginx перенаправления на https.

До неё поставил SSL сертификат. Проверил сайт — работает и по https и по http. Всё хорошо. Проверки системы проходит.

Включаем перенаправление в nginx. И получаем ошибку: «Внутреннее перенаправление (функция LocalRedirect)»

Ошибка явно из-за того, что не везде в битриксе стоит динамический протокол(так бы выбрался бы сразу https). Он явно теперь «стучится» по http, а nginx его редиректит, чего не ожидает Битрикс. Вот вам и ошибка.

Решение «влоб» — в файле dbconn.php прописываем строку:

$_SERVER["SERVER_PORT"] = "443";

Однако надо помнить и понимать, что это приводит к несостыковкам с http(порт там 80). Но в моём случае остаётся один https.

Заметили ошибку, можете подсказать еще что-то? — Обращаемся сюда




  • By irekunenko


  • 7 августа, 2020
  • Обо всем

Столкнулся с ошибкой, которая видна при проверке параметров сервера.
Выглядит так: Внутреннее перенаправление (функция LocalRedirect) — Ошибка! Не работает.

Решается просто:
Идем в файл dbconn.php
Если ничего не менялось, то путь такой:
mcedit /home/bitrix/www/bitrix/php_interface/dbconn.php

И там, в начало файла, после

< ?

дописываем:
$_SERVER[«SERVER_PORT»] = «443»;

Профит.

function LocalRedirect($url, $skip_security_check=false, $status=«302 Found»)

{

/** @global CMain $APPLICATION */

global $APPLICATION;

/** @global CDatabase $DB */

global $DB;

if(defined(«DEMO») && DEMO==«Y» && (!defined(«SITEEXPIREDATE») || !defined(«OLDSITEEXPIREDATE») || strlen(SITEEXPIREDATE) <= 0 || SITEEXPIREDATE != OLDSITEEXPIREDATE))

die(GetMessage(«TOOLS_TRIAL_EXP»));

$bExternal = preg_match(«‘^(http://|https://|ftp://)’i», $url);

if(!$bExternal && strpos($url, «/») !== 0)

{

$url = $APPLICATION->GetCurDir().$url;

}

//doubtful

$url = str_replace(«&amp;», «&», $url);

// http response splitting defence

$url = str_replace(array(«\r», «\n»), «», $url);

if(!defined(«BX_UTF») && defined(«LANG_CHARSET»))

{

$url = \Bitrix\Main\Text\Encoding::convertEncoding($url, LANG_CHARSET, «UTF-8»);

}

if(function_exists(«getmoduleevents»))

{

foreach(GetModuleEvents(«main», «OnBeforeLocalRedirect», true) as $arEvent)

{

ExecuteModuleEventEx($arEvent, array(&$url, $skip_security_check, &$bExternal));

}

}

if(!$bExternal)

{

//store cookies for next hit (see CMain::GetSpreadCookieHTML())

$APPLICATION->StoreCookies();

$host = $_SERVER[‘HTTP_HOST’];

if($_SERVER[‘SERVER_PORT’] <> 80 && $_SERVER[‘SERVER_PORT’] <> 443 && $_SERVER[‘SERVER_PORT’] > 0 && strpos($_SERVER[‘HTTP_HOST’], «:») === false)

{

$host .= «:».$_SERVER[‘SERVER_PORT’];

}

$protocol = (CMain::IsHTTPS() ? «https» : «http»);

$url = $protocol.«://».$host.$url;

}

CHTTP::SetStatus($status);

header(«Location: «.$url);

if(function_exists(«getmoduleevents»))

{

foreach(GetModuleEvents(«main», «OnLocalRedirect», true) as $arEvent)

ExecuteModuleEventEx($arEvent);

}

$_SESSION[«BX_REDIRECT_TIME»] = time();

\Bitrix\Main\Application::getInstance()->end();

}

Понравилась статья? Поделить с друзьями:
  • Внимательно прочитав задание у меня возникли вопросы ошибка
  • Внутренняя ошибка 0x80090020 при генерации ключа фнс
  • Вновь возродилась это ошибка
  • Внутренняя ошибка 0x80090020 при генерации ключа налоговая
  • Вновь возобновить лексическая ошибка