Кажется, затупил... C localhost стандартно отправляю:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://site.com/some-page");
$aHeaders = array('Host: site.com',
'Referer: http://site.com/main-page');
curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeaders);
curl_exec($ch);
curl_close($ch);
Иными словами, хочу сказать сайту site.com, что я, находясь на его главной странице, запрашиваю другую страницу.
Но в HttpFox вижу такой обмен:
(Request-Line) GET /abc/script.php HTTP/1.1
Host localhost
...
...
Referer http://localhost/abc/
т.е. замаскироваться не удалось, сайт site.com видит, что его пытаются парсить с localhost'а. Отсюда и все вытекающие редиректы, невыдача информации и т.п. Где затупил?