169 похожих чатов

Добрый день, у кого-нибудь есть опыт заставить Laravel во всех

ответах использовать https-адрес?

У меня приложения под миллиардом прокси-серверов, доверенные прокси установлены через звездочку.

Пробовал URL::forceScheme, пробовал для раутов задавать scheme, ничего не помогает, все равно при использовании на сервере redirect(), эта сволочь отдает в заголовках ответа Location: с неверной схемой.

10 ответов

13 просмотров
Константин-Чудин Автор вопроса

Если когда-нибудь кто-то вдруг поиском найдет этот вопрос и столкнется с такой же проблемой, то решается с помощью черной магии в сервис-провайдере: $this->app['request']->server->set('HTTPS', true);

Константин Чудин
Если когда-нибудь кто-то вдруг поиском найдет этот...

Достаточно в файле .env указать APP_URL=https://... И все ссылки будут иметь адрес https

Константин-Чудин Автор вопроса
Andrey Helldar
Достаточно в файле .env указать APP_URL=https://.....

Этого достаточно для формирования ссылок, но недостаточно для перенаправления пользователя через, например, redirect()->back() и других кейсов после post-запросов. Фреймворк пытается угадать схему по заголовку X-Forwarded-Proto и конфигурация TrustProxies не всегда спасает (ну, точнее она спасает, когда у приложения не полностью упоротая цепочка прокси, которую вам невозможно долго распутывать и искать где эти заголовки на каком этапе режутся)

Константин Чудин
Этого достаточно для формирования ссылок, но недос...

Это косяк nginx. Он должен редиректить юзера на https если тот ломится по http.

Константин-Чудин Автор вопроса
Andrey Helldar
Это косяк nginx. Он должен редиректить юзера на ht...

Так-то оно так и он редиректит, но он не редиректит в обратную сторону, то есть ответ от сервера он никак, естественно не обрабатывает. А от сервера приходит заголовок Location: http потому, что Laravel смотрит на схему запроса, которую пытается угадать через заголовок X-Forwarded-Proto, который режется цепочкой прокси, на которую нельзя повлиять в моем кейсе.

URL::forceScheme не помогло, очень странно

Константин-Чудин Автор вопроса
Egor Gruzdev
URL::forceScheme не помогло, очень странно

Да, надо будет поресерчить в эту сторону в кишках, потому как должно было сработать.

Константин-Чудин Автор вопроса
Egor Gruzdev
ты где вызывал данный метод?

Да там же, в boot() главного сервис-провайдера.

Константин Чудин
Да там же, в boot() главного сервис-провайдера.

прикольно, должно было работать, значит где костылек есть в посредниках, которые правки вносят

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

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта