2016-09-01 3 views
1

У меня есть веб-сайт создан, который использует метод перенаправления ...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 при перенаправлении (который будет работать нормально)
  • Перенаправление все за исключением одной папки

Любые предложения? Я немного потерял ...

ответ

5

Если вы готовы отказаться от «постоянного «статус перенаправления, я считаю, что перенаправление 307 вместо 301 будет сохранять POST. На самом деле существует перенаправление, которое является постоянным и сохраняет сообщение, 308, но оно еще не принято еще браузерами и другими пользовательскими агентами.

+0

Это то, что я в конечном итоге использовал ... спасибо! –

1

308 редирект это исправить, но решение для POST непосредственно https:

  • , разместив на HTTP, ваши почтовые данные не являются безопасными
  • редирект сделать процесс медленнее
  • если вы отправляете сообщение на http с веб-страницы https, браузер может отображать предупреждение пользователю
+1

Определенно предпочли бы это сделать ... к сожалению, проблема в том, что это OLD-файл SWF-Flash (онлайн-курс), который отправляется на URL-адрес http/80, и, к сожалению, я не контролирую его. Я исправил его, используя 308/307, а не 301. Спасибо! –

Смежные вопросы