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

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

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

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

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

10 ответов

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

Если когда-нибудь кто-то вдруг поиском найдет этот вопрос и столкнется с такой же проблемой, то решается с помощью черной магии в сервис-провайдере: $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() главного сервис-провайдера.

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

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

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

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Коллеги, как получить PId для собственного процесса из под линукса?
Роман Лях (rgreat)
6
Карта сайта