我如何CURL www.google.com - 它一直将我重定向到.co.uk

J.C*_*J.C 13 php dns curl libcurl

我使用CURL来检查是否存在URL(HEAD请求),但是当我测试它时www.google.com,它会将我重定向到www.google.co.uk- 可能是因为我的服务器是基于英国的.

有没有办法阻止这种情况发生?我不想删除该CURLOPT_FOLLOWLOCATION选项,因为这对301重定向等有用.

我的部分代码如下;

$ch = curl_init();

    // set URL and other appropriate options
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt($ch, CURLOPT_FORBID_REUSE, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4);
    curl_setopt($ch, CURLOPT_TIMEOUT, 4);

    $output = curl_exec($ch);

    // get data     
$data = curl_getinfo($ch);
Run Code Online (Sandbox Code Playgroud)

$data['url']含有www.google.co.uk当我设置$urlwww.google.com

Yon*_*oni 13

您需要使用curl和一个模拟浏览器中类似行为的cookie.

当您从英格兰访问google.com时,它会将您重定向到google.co.uk,但是该页面上有一个标题为"go go google.com"的链接,可让您返回google.com并留在那里.它使用cookie来记住您的网站首选项.

例如,以下是我执行此操作后使用的cookie(使用firefox):

替代文字


Ali*_*xel 12

尝试访问www.google.com/ncr,它将避免重定向到.co.uk(或任何其他国家/地区)页面.