Назад | Перейти на главную страницу

Как я могу включить запрос диапазона байтов?

Как я могу включить запрос диапазона байтов? Во время трансляции пода в itunes появляется сообщение об ошибке: «Проблема с вашим фидом. Ваши выпуски размещены на сервере, который не поддерживает запросы байтового диапазона. Включите запросы байтового диапазона и попробуйте отправить еще раз».
Пожалуйста, дайте мне способ включить запрос диапазона байтов

Apache готово обработать статический контент. Если контент создается PHP, вам необходимо соответствующим образом изменить свой PHP-код.

Предположительно http_send_file() и http_send_data() обрабатывают запросы диапазона - но я не уверен, что это означает на практике - требуются некоторые эксперименты.

Apache поддерживает запрос Byte-Range из коробки - при условии, что он не был явно отключен, чтобы обойти эту ошибку DoS (http://httpd.apache.org/security/CVE-2011-3192).

Вы можете протестировать что-нибудь тривиальное, например следующее (в PHP):

<?php
$range = '60-120';
$host = "my.domain.name";
$socket = fsockopen($host,80);
$packet = "GET /path/to/static/file.xml HTTP/1.1\r\nHost: $host\r\nRange:bytes=$range\r\nAccept-Encoding: gzip\r\nConnection: close\r\n\r\n";
fwrite($socket,$packet);
echo fread($socket,2048);

Выполнение вышеуказанного должно привести к примерно следующему:

HTTP/1.1 206 Partial Content
Date: Tue, 10 Jul 2012 11:17:55 GMT
Server: Apache
Last-Modified: Tue, 10 Jul 2012 10:12:23 GMT
Accept-Ranges: bytes
Content-Length: 61
Content-Range: bytes 60-120/6433
Connection: close
Content-Type: text/xml

tp://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
<ch

Если вышеуказанное не работает, вероятно, кто-то отключил заголовок Range - см. Приведенный выше URL-адрес, чтобы узнать, что искать в файлах .htaccess или в глобальной конфигурации Apache.