PHP cURL表示在发布到虚拟主机时永久移动

PHP cURL表示在发布到虚拟主机时永久移动,php,post,curl,Php,Post,Curl,我正试图将一些带有PHP cURL的数据发布到一个本地站点,该站点使用虚拟主机创建一个自定义域http://example.local,但结果似乎是永久移动了。我怎样才能让它工作呢 这是我当前的代码: $url = "http://example.local/paypal_ipn.php" $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch,CURLOPT_URL, $url); cu

我正试图将一些带有PHP cURL的数据发布到一个本地站点,该站点使用虚拟主机创建一个自定义域
http://example.local
,但结果似乎是永久移动了
。我怎样才能让它工作呢

这是我当前的代码:

$url = "http://example.local/paypal_ipn.php"
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);

curl_setopt($ch,CURLOPT_POST, substr_count($req,'&')+1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $req);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

我曾尝试将
CURLOPT\u FOLLOWLOCATION
设置为true,但没有POST数据,结果就是这样。

使用
CURLOPT\u CUSTOMREQUEST
而不是
CURLOPT\u POST
之类

curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
还有一件事,你需要补充

curl_setopt($curl, CURLOPT_POSTREDIR, 3);
3表示301和302重定向的请求类型相同,遵循重定向。

这样,第二个请求也将作为POST请求。请注意,在PHP5.3.2中实现的CURLOPT_POSTREDIR试试看

//** add options **//

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, "your_var");
curl_setopt($curl, CURLOPT_POSTREDIR, 3);

curl_exec($curl);

curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true)行解决了我的问题;curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);有没有办法确定要遵循的新url?有没有办法确定要遵循的新url?@famas23为什么需要它?我没有使用那个符号,但在那个时候,您需要禁用这个重定向选项并放入您自己的逻辑。至少我知道在我上面提供的选项中没有这样的选项