У меня довольно стандартная конфигурация Symfony в наборе nginx. У меня также есть довольно стандартное перенаправление с http
к https
:
server {
listen 80;
...
if ($scheme = http) {
return 301 https://$host$request_uri;
}
listen 443 ssl http2;
}
Я понимаю, что рабочий процесс следующий:
HTTP-запрос -> код 301 возвращается в браузер -> браузер реагирует на 301, извлекает Location
и отправляет новый запрос на Location
Поэтому, когда я сообщаю своему приложению Symfony доступ HEADER_X_FORWARDED_PROTO
, он всегда возвращается https
.
Однако я пытаюсь выяснить, как определить, был ли исходный запрос http или https на веб-сервере. Есть ли способ добавить настраиваемый заголовок запроса, когда nginx выполняет перенаправление, чтобы он оставался во втором запросе https?
Или все мое решение должно быть основано на включении http на уровне nginx и последующей обработке соединения в моем приложении symfony, отправляя туда 301?