Даже если я установил curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true)
cURL не хочет следовать переадресации, он отображает только "Перемещенную страницу 301". Пробовал это с несколькими сайтами. Странно то, что он работает на localhost, но когда я загружаю его в свое веб-пространство, он отказывается работать.
Возможно ли, что мой веб-хостинг-провайдер сделал некоторые настройки, которые не работают? Никогда не видел такой вещи :(
Здесь код:
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://google.com');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: en-US,en;q=0.5',
'Accept-Encoding: gzip, deflate',
'Connection: keep-alive'
));
$result = curl_exec($ch);
curl_close($ch);
У меня была аналогичная проблема, и это произошло из-за того, что cURL
выполнил GET
сразу после получения заголовка перенаправления. Чтобы исправить это, я указал CURLOPT_CUSTOMREQUEST
Пример:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
CURLOPT_FOLLOWLOCATION
не может быть активирован, когда включенsafe_mode
или установленopen_basedir
. Ваш сервер имеет какие-либо из тех, которые включены / установлены?