我正在尝试使用curl将一些值发送到远程URL。但远程站点重定向到另一个导致我麻烦的页面。
例如,我将值从www.mywebsite.com发送到url www.domain.com/index.php,index.php重定向到fetch.php文件,但事情就是这样打开www.mywebsite.com /fetch.php给我404找不到错误,因为这个文件在远程站点而不是我的。我该怎么办?
这是我正在使用的代码
$postfields = "link=xxxxxx";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'domain.com/index.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'rap.txt');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1');
$content = curl_exec($ch);
curl_close($ch);
答案 0 :(得分:0)
您是否尝试设置CURLOPT_FOLLOWLOCATION
选项:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
答案 1 :(得分:0)
试试这段代码:
curl_setopt($ch, CURLOPT_URL, 'http://www.domain.com/index.php');
而不是:
curl_setopt($ch, CURLOPT_URL, 'domain.com/index.php');
答案 2 :(得分:0)
我建议您首先复制您想要以用户身份执行的操作。
即。访问URL并查看它是如何工作的,即数据流如何从1个URL传递到下一个等等。然后尝试通过将所需数据发布到正确的URL来复制它。
也可能是第一个URL正在检查引荐来源,以确保页面没有被滥用。