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当我设置$url为www.google.com
Yon*_*oni 13
您需要使用curl和一个模拟浏览器中类似行为的cookie.
当您从英格兰访问google.com时,它会将您重定向到google.co.uk,但是该页面上有一个标题为"go go google.com"的链接,可让您返回google.com并留在那里.它使用cookie来记住您的网站首选项.
例如,以下是我执行此操作后使用的cookie(使用firefox):
