cURL PHP域默认为Localhost

时间:2014-10-13 18:22:03

标签: php curl https http-status-code-404

我正在请求具有cURL的站点,该站点可以自动登录,但是在脚本登录后,每个GET请求的所有内容都能完美运行,并且URL中包含“localhost”而不是站点的实际域,因此它会抛出找不到404错误。

示例:而不是https://remotesite.com/dashboard http://localhost.com/dashboard (另请注意,http://localhost.com/dashboard没有使用https)

这是我的代码:

$curl = curl_init();

$user_agent = 'Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';
$url = 'https://remotesite.com/dashboard';
$post_data = 'username=username&password=password&cookie=true&destination=&login=Log+In';

curl_setopt ($curl, CURLOPT_URL, $url);
curl_setopt ($curl, CURLOPT_USERAGENT, $user_agent);
curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($curl, CURLOPT_HEADER, 0);
curl_setopt ($curl, CURLOPT_POSTFIELDS, $post_data);
curl_setopt ($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($curl, CURLOPT_AUTOREFERER, 1);
curl_setopt ($curl, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt ($curl, CURLOPT_COOKIEJAR, "cookie.txt");

$result = curl_exec ($curl);
$errmsg  = curl_error($curl);

echo $result;

1 个答案:

答案 0 :(得分:0)

这是因为您尝试访问的站点在其href中使用亲戚路径。 因此,您应该尝试更改base tag以使用正确的域名。

这个问题可能会对您有所帮助:Curl and relative path in <head>