Привет, в настоящее время я использую приведенный ниже код в моем файле apache httpd.conf для перенаправления с HTTP на HTTPS.
<VirtualHost 10.1.2.91:80>
Redirect 302 /GladQE/link https://glad-test.com/GladQE/link.do
Redirect 302 /GladQE/retrieve https://glad-test.com/GladQE/retrieve.do
</VirtualHost>
Это перенаправляет параметры из запроса на получение, но не из сообщения. Начиная с чтения, похоже, что это нужно делать с помощью mod_rewrite.
Может ли кто-нибудь помочь с поправками, которые мне нужно будет внести, чтобы при переходе по ссылке слева с использованием параметров сообщения она перенаправлялась на ссылку справа с неповрежденными параметрами?
Большое спасибо
Том
Похоже на конфиг Apache? Было бы неплохо указать такие вещи. Однако теги подтверждают это.
Эта конфигурация работает только тогда, когда они подключаются к порту 443, поэтому он не может перенаправить из HTTP.
Вы не можете выполнить перенаправление 30 [12] в ответ на запрос POST и сохранить аргументы, если вы не преобразовали запрос в GET и не записали аргументы в URL-адрес. Не рекомендуется.
Вы можете проксировать запрос, но я не уверен, что это решит вашу проблему.
Если пользователь уже отправил данные через POST через незашифрованное соединение, и вы заботитесь о шифровании, вам, вероятно, лучше всего позволить этому запросу прерваться, чтобы его заметили и исправили. Вы должны исправить свою цель формы, а также убедиться, что сама форма (или страница с AJAX в ней или что-то еще) отправляется пользователю по HTTPS.
ОБНОВИТЬ
Учитывая, что shawsy сказал, что проблема в том, что браузер не может устанавливать HTTPS-соединения с сервером, перенаправление определенно не то, что нужно. Скорее вы хотите проксировать запрос:
<VirtualHost 10.1.2.91:80>
# http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass
ProxyPass /GladQE/link https://glad-test.com/GladQE/link.do
ProxyPass /GladQE/retrieve https://glad-test.com/GladQE/retrieve.do
</VirtualHost>
Вы также можете сделать это с помощью mod_rewrite и RewriteRule.
Если вы меняете доменное имя, необходимо решить некоторые дополнительные проблемы, но я думаю, что здесь дело обстоит не так.
Кстати, я лично не люблю помещать имена хостов или IP-адреса где-либо, кроме файла / etc / hosts сервера. Если вы используете имена в файле hosts, такие как 'web' и 'mysql', которые определяют местонахождение служб, а не компьютеров, и вы ссылаетесь на них в своем apache и других файлах, тогда вы можете гораздо легче перемещать конфигурацию между машинами, зная, что вы нужно только просмотреть то, что находится в файле hosts.
Вы можете использовать 307 редирект для сохранения метода. Из Википедия:
В этом случае запрос следует повторить с другим URI; однако в будущих запросах должен по-прежнему использоваться исходный URI. В отличие от того, как 302 был исторически реализован, метод запроса не может быть изменен при повторной выдаче исходного запроса. Например, запрос POST следует повторить, используя другой запрос POST.