ben*_*ail 2 php redirect http httprequest
我在服务器上收到HTTP PUT请求,我想将这些请求重定向/转发到其他服务器.
我用PHP在两台服务器上处理PUT请求.
PUT请求正在使用基本HTTP身份验证.
这是一个例子:
www.myserver.com/service/put/myfile.xml
Run Code Online (Sandbox Code Playgroud)
重定向到
www.myotherserver.com/service/put/myfile.xml
Run Code Online (Sandbox Code Playgroud)
如何在不保存第一台服务器上的文件并使用CURL重新发送PUT请求的情况下执行此操作?
谢谢!
HTTP/1.1定义了这种重定向的状态代码307.但是,PUT通常由客户端软件使用,你几乎可以假设没有人荣誉307.
最有效的方法是在Apache上设置代理,将请求重定向到新URL.
这是你如何在PHP中代理它,
$data = file_get_contents('php://input');
$mem = fopen('php://memory');
fwrite($mem, $data);
rewind($mem);
$ch = curl_init($new_url);
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_INFILE, $mem);
curl_setopt($ch, CURLOPT_INFILESIZE, strlen($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
fclose($meme);
Run Code Online (Sandbox Code Playgroud)