如何使用PHP转发/重定向HTTP PUT请求?

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请求的情况下执行此操作?

谢谢!

ZZ *_*der 5

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)