php cURL не следует за редиректом

Я использую следующий код, чтобы получить код http-статуса последнего URL (после всех перенаправлений):

$handle = curl_init($url);
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_HEADER, true);
// we want headers
//curl_setopt($handle, CURLOPT_NOBODY, true);
curl_setopt($handle, CURLOPT_TIMEOUT, 5);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_USERAGENT, 'my bot');
$response = curl_exec($handle);
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
curl_close($handle);

Тем не менее, cURL не следует за перенаправлениями. F.E. если я использую www.raffiniert.biz/kunden, он показывает простой 301, вместо того, чтобы следовать www.raffiniert.biz/kunden/

В чем дело?

Спасибо
Рафаэль

0

Решение

Я получил ожидаемый ответ, используя точно такой же, как ваш код.

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Mon, 01 Dec 2014 23:19:56 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 309
Connection: keep-alive
Location: http://www.raffiniert.biz/kunden/
Cache-Control: max-age=0
Expires: Mon, 01 Dec 2014 23:19:56 GMT
Vary: Accept-Encoding

HTTP/1.1 403 Forbidden
Server: nginx
Date: Mon, 01 Dec 2014 23:19:57 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 277
Connection: keep-alive
Vary: Accept-Encoding

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /kunden/
on this server.</p>
<hr>
<address>Apache Server at www.raffiniert.biz Port 80</address>
</body></html>

Вы должны проверить …

error_reporting(-1);

или же

if (ini_get('safe_mode') || (string)ini_get('open_basedir') !== '') {
exit('You have no permission to set CURLOPT_FOLLOWLOCATION');
}
0

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

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

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