Как мне завиться www.google.com -он продолжает перенаправлять меня to.co.uk


Я использую CURL для проверки наличия URL (HEAD request), но когда я тестирую его с помощью 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);

$data['url'] содержит www.google.co.uk , Когда я задаю $url Как www.google.com

7 13

7 ответов:

Вам нужно использовать curl с файлом cookie, который имитирует аналогичное поведение в браузере.

Когда вы посещаете google.com из Англии он перенаправляет вас в google.co.uk, однако на этой странице есть ссылка под названием " перейти к google.com-это позволяет тебе вернуться в прошлое. google.com и оставайся там. Он использует куки, чтобы запомнить ваши предпочтения.

Например, вот куки, которые у меня есть после этого (с помощью firefox):

текст Alt

Попробуйте получить доступ к www.google.com/ncr, это позволит избежать перенаправления на. co.uk (или любая другая национальная) страница.

Другой вариант-использовать просто encrypted.google.com - это не перенаправит.

Немного хак, но как насчет использования IP-адреса? http://216.239.59.147/ http://66.102.7.104/

Вы могли бы использовать www.google.co.uk непосредственно, никакой разницы нет. google.com/.net всегда перенаправляйте на свое местоположение, но если вы используете TLD страны, как .co.uk он не будет перенаправлять.

Не существует способа (известных мне), чтобы предотвратить перенаправление при использовании .com или .чистая.

Один из способов избежать того, чтобы Google решил, в какой стране вы находитесь, - это установить другой IP-адрес. Просто возьмите один из многих прокси-серверов США из интернета и сделайте что-то вроде этого:

$ch=curl_init();
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_FOLLOWLOCTION,1); 
curl_setopt($ch,CURLOPT_PROXY,"8.12.33.159");
curl_setopt($ch,CURLOPT_PROXYPORT,"80");
curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3");
curl_setopt($ch,CURLOPT_URL,$URI);
$results=curl_exec($ch);
curl_close($ch);

Таким образом, Google будет думать, что вы пришли сформировать американский IP-адрес, а не перенаправить на локальный Google.

Вы должны отключить расположение follow от curl (установите его в false), и вы больше не будете перенаправлены ...

   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);