Nginx теряет переменную POST при перенаправлении http -> https
У меня есть сайт, который использует метод перенаправления...
server {
listen 80;
server_name example.org;
return 301 https://$server_name$request_uri;
}
Однако, когда страница публикуется на " http://example.com/", она перенаправляется на " https://example.com/", и в процессе она удаляет POST.
Я понимаю, как это работает, однако мне нужно как-то сделать одно из следующего...
- Выполните перенаправление с http -> https, не изменяя переменную POST
- Преобразуйте переменную POST в переменную GET во время перенаправления (что будет работать нормально)
- Перенаправить все, кроме одной папки
Какие-либо предложения? Я немного растерялся...
3 ответа
Если вы готовы отказаться от статуса "перманентного" перенаправления, я считаю, что перенаправление 307 вместо 301 сохранит POST. На самом деле существует перенаправление, которое является постоянным и сохраняет пост, 308, но оно еще не очень хорошо воспринято браузерами и другими пользовательскими агентами.
Переадресация 308 - это исправление, но решение состоит в том, чтобы POST напрямую к https:
- публикуя на http, ваши данные не защищены
- редирект замедляет процесс
- если вы публикуете http с веб-страницы https, браузер может отобразить предупреждение для пользователя
Это общая проблема, и для нее нет простого решения.
Здесь есть несколько ответов с похожими вопросами
Apache 301 Redirect и сохранение почтовых данных
Можно ли перенаправить данные поста?
Возможно, один из ответов поможет решить вашу проблему