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

Здравствуйте!Столкнулся с такой вот проблемой -при переносе на хостинг у меня перестал срабатывать LocalRedirect.На локальной же машине все работает как часы.Возможно кто то сталкивался, буду благодарен за любую помощь.
 

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

Заглянувший

Сообщений: 6
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 08.01.2008

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

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

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

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

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

 

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

Сообщений: 8512
Баллов: 1056
Авторитет:

2

Рейтинг пользователя:

66

Регистрация: 17.05.2007

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

 

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

Заглянувший

Сообщений: 6
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 08.01.2008

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

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

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

 

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

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

Сообщений: 8512
Баллов: 1056
Авторитет:

2

Рейтинг пользователя:

66

Регистрация: 17.05.2007

#4

0

21.06.2009 23:28:36

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

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

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

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

 

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

Гуру

Сообщений: 398
Баллов: 281
Авторитет:

1

Рейтинг пользователя:

5

Регистрация: 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;
 

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

Сообщений: 1433
Баллов: 216
Авторитет:

1

Рейтинг пользователя:

14

Регистрация: 31.10.2007

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

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

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

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

 

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

Заглянувший

Сообщений: 19
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 06.03.2009

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

 

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

Постоянный посетитель

Сообщений: 384
Баллов: 37
Авторитет:

2

Рейтинг пользователя:

0

Регистрация: 28.07.2010

UP!!!!!!!!!

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

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

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

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

 

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

Заглянувший

Сообщений: 25
Баллов: 2
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 15.08.2010

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

 

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

Заглянувший

Сообщений: 30
Баллов: 1
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 10.04.2009

#10

0

27.08.2012 05:04:23

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

 

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

Заглянувший

Сообщений: 8
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 14.11.2011

#11

1

26.02.2015 23:11:40

Сталкивался с этой проблемой несколько раз при переносе на другой хостинг с тестового, а конкретно на TimeWeb. Причина во всех случаях оказывалась в том, что в init.php (или других стартовых файлах) были пустые строки либо вначале до открывающей <? либо вконце после ?> либо между ними, если такое случалось.

Так же один раз каким-то образом в header.php тот что в папке /bitrix/ закралась новая строка до вставки пролога и был тот же эффект. Короче, если вам вдруг после каких-либо махинаций сайт выдает такую чепуху, будто die() поставили, значит где-то LocalRedirect срабатывает после вывода каких-либо визуальных данных (дада перенос строки — это тоже вывод). Если вдаваться подробнее, то это связанно с формирование заголовков и всякой такой лабудой, но это уже сами почитаете если интересно.

 

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

Заглянувший

Сообщений: 1
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 06.05.2013

#12

1

29.06.2016 14:21:13

Цитата
Victor Chulkov написал:
мне в свое время помогло добавление в 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; 

при переводе с http:// -> на https:// возникла та же ошибка
помогло это решение
443 только порт сделал

 

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

Заглянувший

Сообщений: 9
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 16.03.2016

#13

2

12.11.2016 17:24:00

Хостинг TimeWeb. После перехода на https, возникла проблема с редиректами. Решались приведенным выше примером, а именно:

Цитата
<?php
global $SERVER_PORT,$HTTP_HOST;
if (($pos = strpos($HTTP_HOST,’:’)) !== false)
$HTTP_HOST = substr($HTTP_HOST,0,$pos);
$SERVER_PORT = 443;

$_SERVER[«SERVER_PORT»] = $SERVER_PORT;
$_SERVER[«HTTP_HOST»] = $HTTP_HOST;
?>

 

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

Посетитель

Сообщений: 32
Баллов: 5
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 11.12.2005

#14

6

08.05.2017 17:40:30

Коллеги,

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

$_SERVER[«SERVER_PORT»] = «443»;

Вычитал на сайте

http://timeweb.com/ru/community/questions/bitriks-na-ssl-vnutrennee-perenapravlenie-funkciya-localre…

Успехов  

 

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

Заглянувший

Сообщений: 1
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 17.11.2017

#15

0

17.12.2017 11:17:46

Спасибо,вроде перестало выдавать ошибку)

 

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

Заглянувший

Сообщений: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 22.03.2018

#16

0

15.06.2019 14:42:58

Цитата
Дмитрий Хрусталев написал:
Коллеги,

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

$_SERVER[«SERVER_PORT»] = «443»;

Вычитал на сайте  

http://timeweb.com/ru/community/questions/bitriks-na-ssl-vnutrennee-perenapravlenie-funkciya-localre…

Успехов  

Этот вариант работает!

 

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

Заглянувший

Сообщений: 10
Баллов: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 25.01.2016

#17

0

12.08.2021 11:39:17

Мне помогло добавление в init.php строку

$_SERVER[«HTTPS»] = «On»;

Endru9

Всем привет.
Сайт на битриксе переехал с apache2 на nginx+php5-fpm, + заодно прикрутили ssl сертификат и настроили в nginx перенаправление с http на https.

После переезда перестал работать LocalRedirect, было нагуглено добавить в dbconn.php -> $_SERVER[«SERVER_PORT»] = «443»;
однако проблему это не решило.
Может кто-то сталкивался с подобным?


  • Вопрос задан

    более трёх лет назад

  • 1552 просмотра

Переписал все LocalRedirect в коде на header. Работает!
Почему не работает LocalRedirect — не понятно.

Пригласить эксперта

Непонятно, что может там не работать. Обычное выплёвывание Location заголовка

Для корректной совместной работы редиректа http -> https на nginx и теста LocalRedirect в проверке системы Битрикса необходимо установить переменную окружения HTTPS=on в случае, когда запрос выполняется по https. Переменная будет продублирована в $_SERVER[‘HTTPS’], и Битрикс сможет определять текущий протокол корректно.

Для этого в .htaccess нужно добавить строку:

SetEnvIf X-Forwarded-Proto "^https$" HTTPS=on


  • Показать ещё
    Загружается…

10 февр. 2023, в 10:35

50000 руб./за проект

10 февр. 2023, в 08:59

1000 руб./за проект

10 февр. 2023, в 08:22

2000 руб./за проект

Минуточку внимания

В Битрикс есть встроенная функция для создания редиректа (переадресации) на PHP — это функция LocalRedirect. У этой функции есть три параметра:

LocalRedirect($url, $skip_security_check = false, $status = "302 Found");
  • Первый параметр $url (строка) — это относительный адрес страницы сайта, на который происходит перенаправление.
  • Второй параметр может принимать значение «false» или «true» и позволяет пропустить проверку на вишинг от модуля безопасноти (если он есть в редакции системы и включен). Необязательный параметр
  • Третий параметр $status (строка) — это ответ, который будет возвращать сервер при перенаправлении. Необязательный параметр

В третий параметр можно вписать любые статусы в зависимости от поставленной задачи, к примеру:

  • 301 Moved permanently — запрошенный документ был окончательно перенесен на новый адрес
  • 302 Moved Temporarily — запрошенный документ временно доступен по другому адресу

Функцию LocalRedirect можно использовать после подключения служебной части пролога. Продемонстрируем способ сделать переадресацию с текущего скрипта на раздел /news/:

<?
// подключение служебной части пролога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

LocalRedirect('/news/');

// подключение служебной части эпилога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?>

Если есть необходимость, то можно поставить функцию LocalRedirect после вывода хидера — она все равно сработает. Произойдёт перенаправление:

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

LocalRedirect('/news/');

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>

Была ли статья полезной?

Была ли эта статья полезна?

Есть вопрос?

хостинг для сайтов

Закажите недорогой хостинг

Заказать

всего от 290 руб

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Внимательно посмотри как женя разделил слова для переноса нет у него ошибок если есть исправь
  • Внимательно озвучьте ваше предложение где ошибка
  • Внимание точность данных dmi не гарантируется как исправить
  • Внимание произошла ошибка при открытии одного или нескольких файлов не удалось определить причину ошибки
  • Внимание при обработке данных произошла непредвиденная ошибка госуслуги

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии