Недавно я реализовал следующие настройки виртуального хоста в моем файле apache2.conf:
# force HTTPS
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} !^/path1.html
RewriteCond %{REQUEST_URI} !^/path2.html
#RewriteCond %{REQUEST_URI} ^/path3.html
#RewriteCond ${REQUEST_URI} !^/index.html
RewriteRule . https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
Одна из служб, с которой я интегрируюсь, взаимодействует с моей службой с помощью HTTP POST. Однако они заметили, что после реализации этой конфигурации и вызова http: //, когда мой сервер вынуждает выполнять вызов через https, тип запроса изменяется с POST на GET, а сообщения POST отбрасываются. Мне было интересно, есть ли способ обновить этот код, чтобы сохранить исходный метод POST / GET без изменений.
Служба вызовов не работает, но вы мало что можете с этим поделать, если не исправите звонящего. Из RFC 2616:
Примечание. При автоматическом перенаправлении запроса POST после получения кода состояния 301 некоторые существующие пользовательские агенты HTTP / 1.0 по ошибке изменят его на запрос GET.
Ваши варианты: