sha*_*wsy 16 apache redirect httpd.conf
我在我的服务器上安装了Apache,我需要从http重定向到https.原因是我们的负载均衡器解决方案无法提供https,因此请求进入http,然后我们使用httpd.conf文件中的以下行将它们传输到https.
<VirtualHost 10.1.2.91:80>
Redirect 302 /GladQE/link https://glad-test.com/GladQE/link.do
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
这适用于GET请求,但POST请求将丢失在URL上传递的参数.什么是最简单的方法来执行此重定向和维护POST参数?
我需要从http://glad-test.com/GladQE/link.do到这里https://glad-test.com/GladQE/link.do维护POST参数
谢谢
汤姆
Lor*_*enz 27
您可以尝试使用HTTP状态代码307,RFC编译浏览器应该重复发布请求.参考:http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
与历史上实现302的方式相反,在重新发出原始请求时不允许更改请求方法.例如,应使用另一个POST请求重复POST请求.
要从302更改为307,请执行以下操作:
<VirtualHost 10.1.2.91:80>
Redirect 307 /GladQE/link https://glad-test.com/GladQE/link.do
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
dez*_*lov 18
标准Apache重定向将无法处理POST数据,因为它们在URL级别上工作.POST数据在请求正文中传递,如果执行标准重定向,则会丢弃该数据.
您可以选择使用PHP脚本透明地转发POST请求,也可以使用Apache 的Rewrite(mod_rewrite)和Proxy(mod_proxy)模块的组合,如下所示:
RewriteEngine On
RewriteRule /proxy/(.*)$ http://www.example.com/$1 [P,L]
Run Code Online (Sandbox Code Playgroud)
Pflag将请求传递给Proxy模块,因此任何到达您站点的内容(通过GET或POST无关紧要),以一个以路径开头的URL路径/proxy/将透明地作为代理重定向来处理http://www.example.com/.
供参考:
| 归档时间: |
|
| 查看次数: |
22317 次 |
| 最近记录: |