2012-06-16 3 views
2

Есть ли способ отправить HTTP-реферер с сервера вместо браузера?Установить HTTP Referrer с сервера?

Вот что я пытался до сих пор

if ($download_result['redirect']) 
    { 
     header('Referer: http://torcache.net/torrent/DD157829553E81D3C513D93420624942FFA48D99.torrent'); 
     header('Server: nginx/1.3.0'); 
     header('Content-Type: application/x-bittorrent'); 
     header('Content-Encoding: gzip'); 
     header('Content-Length: 10767'); 
     header('Location: ' . $download_result['url2']); 
    } 
    } 

Мне нужно установить реферера агент, потому что использование Torcache первым идет на HTML-страницу, прежде чем на самом деле загрузки кэш торрент; это вызывает раздражение, поскольку вам нужно нажать кнопку «Назад», чтобы вернуться на сайт после d.l; После просмотра заголовков GET, которые были отправлены, я хотел подделать агент http-referrer, чтобы он пропускал страницу html и получал кеш

ответ

4

Нет, сервер не может заставить клиента отправлять определенное значение HTTP-Referer.

+0

То есть, если он не захочет загладить страницу самостоятельно, а затем отправить результаты клиенту. –

+0

Тогда * сервер * делает запрос, который не похож на то, что он хочет сделать. – deceze

2

Ну, вы можете сделать запрос GET, используя cURL, как это.

header('Content-type: application/x-bittorrent'); 
$ch = curl_init('http://torcache.net/torrent/DD157829553E81D3C513D93420624942FFA48D99.torrent');                  
curl_setopt($ch, CURLOPT_POSTFIELDS, null); 
curl_setopt($ch, CURLOPT_POST, FALSE); 
curl_setopt($ch, CURLOPT_HTTPGET, TRUE);                 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-bittorrent','Referer: http://torcache.net/torrent/DD157829553E81D3C513D93420624942FFA48D99.torrent')); 
curl_setopt($ch, CURLOPT_REFERER, 'http://torcache.net/torrent/DD157829553E81D3C513D93420624942FFA48D99.torrent'); 
curl_setopt($ch, CURLOPT_ENCODING,"gzip"); 
$result = curl_exec($ch); 
echo $result; 
Смежные вопросы