Cotonti / Open Source PHP Content Management FrameworkContent Management Framework

Forums / National / Russian / Тех. поддержка / Hello

Help my

Dayver
#44515 2020-02-27 21:46
#44514 prostogorod:

Вот что сервер отдает:

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

 

И так начинаем разбиратся почему в <base href=""> попадает ссылка с портом .... в файле common.php есть 78 строка из которой видим что если $sys['port'] пустой то все норм а если в нем будет цифра то она и попадет в урл ... смотрим выше в 73 строку где идет определение этого параметра, а там условие если $sys['port'] == $def_port то будет все ок .

 

Но у вас $sys['port'] будет равен 80 (что не верно и при этом он в итоге еще и попадает в урл) ? а  $def_port на основе ваши данных очевидно будет равен 443 (что верно поскольку сайт работает по безопасному протоколу).

 

Разберемся по очереди, сперва то что определилось корректно на основе 54 строки

$sys['scheme'] = strpos($_SERVER['SERVER_PROTOCOL'], 'HTTPS') === false && $_SERVER['HTTPS'] != 'on' && $_SERVER['SERVER_PORT'] != 443 && $_SERVER['HTTP_X_FORWARDED_PORT'] !== 443 ? 'http' : 'https';

Разберем это уловие:

ЕСЛИ strpos($_SERVER['SERVER_PROTOCOL'], 'HTTPS') === false

И $_SERVER['HTTPS'] != 'on'

И $_SERVER['SERVER_PORT'] != 443

И $_SERVER['HTTP_X_FORWARDED_PORT'] !== 443

ТОГДА = http ИНАЧЕ https

Увидели что у вас хотя бы одно условие $_SERVER['HTTPS'] = 'on' ? а потому движок корректно думает что $sys['scheme'] = https

Если $sys['scheme'] = https то поэтому $def_port и получил значение 443.

 

Ну и самое сладкое на десер. Почему $sys['port'] будет не верно равен 80 ? Ну наверное потому что в 65 строке

$sys['port'] = $_SERVER['SERVER_PORT'];

а у вас сервер дает [SERVER_PORT] => 80 .... почему? Почему если вы используете https протокол? Вопрос не по адресу. Я то догадываюсь но результата это не меняет - заголовки противоречивые.

 

Так может движок корректно работать если ему сервер дает противоречивую информацию?!

 

З.Ы. Расписал достаточно подробно что бы каждый мог при желании вникнуть и понять где ошибка. Как правило у большинства все работает корректно но не так уж и редко последнее время стали встречатся сервера где вот такая каша и у людей начинаются проблемы. А если они есть то сразу нужно смотреть на вот такие параметры которые отдает сервер $_SERVER['SERVER_PROTOCOL'] $_SERVER['HTTPS'] $_SERVER['SERVER_PORT'] $_SERVER['HTTP_X_FORWARDED_PORT'] и то что вы прописали в $cfg['mainurl']

Pavel Tkachenko aka Dayver. Гик и веб мастер который делает сайты, увлекается электроникой и очень любит смотреть кино.
О себе: Я злой и страшный серый волк, я в поросятах знааааюююю толк

Dit bericht is bewerkt door Dayver (2020-02-27 22:08, 1 jaar ago)