2015-01-09 5 views
0

Даже если я установил curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true) cURL не хочет следить за переадресацией, он отображает только «Перемещенную страницу 301». Пробовал это с несколькими сайтами. Странно, что он работает на localhost, но когда я загружаю его в свое веб-пространство, он отказывается работать.PHP cURL не выполняет перенаправления, даже если флаг установлен

Возможно ли, что мой хостинг-провайдер сделал некоторые настройки, которые не работают? Никогда не видел такой вещи :(

Вот код:.

$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); 
+1

'CURLOPT_FOLLOWLOCATION' не может активироваться при включении «safe_mode» или «open_basedir». У вашего сервера есть один из этих включенных/настроенных? – showdev

+0

@showdev Спасибо, Забыл включить отчет об ошибках, получил тот же результат. Если вы хотите, вы можете ответить на этот вопрос, и я соглашусь с ним. – rapstacke

+1

Возможный дубликат [CURLOPT \ _FOLLOWLOCATION не может быть активирован] (http://stackoverflow.com/questions/6352927/curlopt-followlocation-cannot-be-activated) – showdev

ответ

0

У меня была аналогичная проблема, и это было связано с cURL выполнения GET сразу после получения заголовка перенаправления Чтобы это исправить я указанный CURLOPT_CUSTOMREQUEST

Пример:

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

Смежные вопросы