ответах использовать https-адрес?
У меня приложения под миллиардом прокси-серверов, доверенные прокси установлены через звездочку.
Пробовал URL::forceScheme, пробовал для раутов задавать scheme, ничего не помогает, все равно при использовании на сервере redirect(), эта сволочь отдает в заголовках ответа Location: с неверной схемой.
Если когда-нибудь кто-то вдруг поиском найдет этот вопрос и столкнется с такой же проблемой, то решается с помощью черной магии в сервис-провайдере: $this->app['request']->server->set('HTTPS', true);
Достаточно в файле .env указать APP_URL=https://... И все ссылки будут иметь адрес https
Этого достаточно для формирования ссылок, но недостаточно для перенаправления пользователя через, например, redirect()->back() и других кейсов после post-запросов. Фреймворк пытается угадать схему по заголовку X-Forwarded-Proto и конфигурация TrustProxies не всегда спасает (ну, точнее она спасает, когда у приложения не полностью упоротая цепочка прокси, которую вам невозможно долго распутывать и искать где эти заголовки на каком этапе режутся)
Это косяк nginx. Он должен редиректить юзера на https если тот ломится по http.
Так-то оно так и он редиректит, но он не редиректит в обратную сторону, то есть ответ от сервера он никак, естественно не обрабатывает. А от сервера приходит заголовок Location: http потому, что Laravel смотрит на схему запроса, которую пытается угадать через заголовок X-Forwarded-Proto, который режется цепочкой прокси, на которую нельзя повлиять в моем кейсе.
URL::forceScheme не помогло, очень странно
Да, надо будет поресерчить в эту сторону в кишках, потому как должно было сработать.
ты где вызывал данный метод?
Да там же, в boot() главного сервис-провайдера.
прикольно, должно было работать, значит где костылек есть в посредниках, которые правки вносят
Обсуждают сегодня