cURL не может загрузить файл изображения с сервера, на котором работает Varnish Cache

У меня есть следующий скрипт PHP, который прекрасно работает в 99% случаев. Но он не будет загружать образ с этого сервера, который, я думаю, работает под управлением Varnish Cache.

<?php

$imglink = 'http://www.dirtrider.com/wp-content/uploads/2014/10/WD-10_1_14-001.jpg';

$ch = curl_init($imglink);
$fp = fopen('/home/path/www/tmp/test.jpg', "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);

curl_exec($ch);

fclose($fp);

0

Решение

Вы получаете 403 Forbidden ошибка, если вы используете CURL для загрузки этого изображения. Вы можете обойти эту ошибку очень легко. Просто добавьте альтернативный пользовательский агент для вашего запроса CURL:

curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

И эт вуаля! Отлично работает. Похоже, что Varnishe Cache блокирует запросы CURL, которые используют пользовательский агент по умолчанию CURL.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]