Help my
sanek42 |
|
---|---|
Здравствуйте, у меня такая проблемма, устанавливал разные версии, какие только не пробовал все приходит к одному. откуда там берется 80 порт я не понимаю. когда его стираешь и обновляешь страницу, вход выполнен нормально
|
Dayver |
|
---|---|
Скорее всего дело в кривых заголовках которые генерирует ваш хостинг ... но точнее сказать сложно поскольку мало информации о вашей проблеме Pavlo Tkachenko aka Dayver
|
prostogorod |
|
||
---|---|---|---|
#44491 Dayver: Я тоже думал, что хостинг, но заменил старый common.php и порт :80 исчез в урлах. Потом нашел разницу в коде:
Этот код генерирует порт :80 А этот нет:
|
Dayver |
|
|
---|---|---|
#44505 prostogorod: Ну вот видите - вы не разобрались и просто стали использовать код старой версии движка вместо того что бы понять почему из-за заголовков на вашем хостинге движок с новым кодом не правильно их интерпретирует и работает не корректно. По вашей версии проблема в новом коде, но почему он у многих работает нормально и только у единиц сбоит? Может всетаки дело в хостинге? А всего то нужно вставить в код, временно строчку
посмотреть что отдает сервер в заголовки и разобратся в чем причина. Была бы эта информация тут то можно было бы предметно о чем то говорить, а таааак все чем тут ожно помочь это сказать #44491 Dayver: Pavlo Tkachenko aka Dayver
|
prostogorod |
|
|
---|---|---|
В том то и дело, очень интересно разобраться))) Но сам тонкостей не знаю. Вот что сервер отдает:
|
||
Dit bericht is bewerkt door prostogorod (2020-02-28 06:39, 5 jaren ago) |
Dayver |
|
||
---|---|---|---|
#44514 prostogorod: Може удалить из поста - увидел, остальным не обязательно ..... хотя данные подозрительные, не похожи на те что должны быть у сайта который вижу в онлайне
И так начинаем разбиратся почему в <base href=""> попадает ссылка с портом .... в файле common.php есть 78 строка из которой видим что если $sys['port'] пустой то все норм а если в нем будет цифра то она и попадет в урл ... смотрим выше в 73 строку где идет определение этого параметра, а там условие если $sys['port'] == $def_port то будет все ок .
Но у вас $sys['port'] будет равен 80 (что не верно и при этом он в итоге еще и попадает в урл) ? а $def_port на основе ваши данных очевидно будет равен 443 (что верно поскольку сайт работает по безопасному протоколу).
Разберемся по очереди, сперва то что определилось корректно на основе 54 строки
Разберем это уловие: ЕСЛИ 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 строке
а у вас сервер дает [SERVER_PORT] => 80 .... почему? Почему если вы используете https протокол? Вопрос не по адресу. Я то догадываюсь но результата это не меняет - заголовки противоречивые.
Так может движок корректно работать если ему сервер дает противоречивую информацию?!
З.Ы. Расписал достаточно подробно что бы каждый мог при желании вникнуть и понять где ошибка. Как правило у большинства все работает корректно но не так уж и редко последнее время стали встречатся сервера где вот такая каша и у людей начинаются проблемы. А если они есть то сразу нужно смотреть на вот такие параметры которые отдает сервер $_SERVER['SERVER_PROTOCOL'] $_SERVER['HTTPS'] $_SERVER['SERVER_PORT'] $_SERVER['HTTP_X_FORWARDED_PORT'] и то что вы прописали в $cfg['mainurl'] Pavlo Tkachenko aka Dayver
|
|||
Dit bericht is bewerkt door Dayver (2020-02-27 22:08, 5 jaren ago) |
prostogorod |
|
|
---|---|---|
Да вижу это несоответствие, должно быть [SERVER_PORT] => 443 Вот что написал, возможно один из лучших хостеров
Они подталкиваю, что-то менять в движке, вижу они не правы. Насколько адекватен их ответ с технической стороны? |