Есть ли способ отключить запросы диапазона байтов в Apache?
У меня есть веб-страница со ссылкой на файл PDF (target="_blank"
). Если я нажму на ссылку, программа чтения PDF просто покажет серый экран в браузере Firefox.
Если я скопирую эту ссылку и вручную открою ее на новой вкладке, PDF-файл будет отображаться правильно, и последующие запросы, сделанные при нажатии на исходную ссылку, теперь будут работать, предполагая, что проблема возникает при загрузке файла в кэш.
Похоже, что плагин для чтения Adobe PDF делает запросы в диапазоне байтов (я вижу много ответов 206), и я подозреваю, что это может быть причиной проблемы.
Я использую веб-сервер Apache. У кого-нибудь были проблемы с запросами Apache и Adobe в диапазоне байтов? Есть ли обходные пути? Возможно, способ настроить Apache для игнорирования запросов байтового диапазона в PDF-файлах?
3 ответа
Вопрос о том, как отключить запросы, задавался и отвечался в списке рассылки httpd:
Как отключить Accept-Ranges?
Исходные серверы, которые принимают запросы диапазона байтов, МОГУТ отправить
Accept-Ranges: bytes Servers that do not accept any kind of range request for a resource MAY send Accept-Ranges: none
если вы не найдете более прямой путь, вы всегда можете использовать mod_headers, чтобы удалить или изменить заголовки ответа.
-> см. документацию apache для mod_headers, чтобы узнать, как установить заголовок Accept-Ranges в none
http://mail-archives.apache.org/mod_mbox/httpd-users/200912.mbox/%3C4B1ECDD4.10403@ice-sa.com%3E
У вас есть Кальмар, сидящий посередине? Это общая проблема с плагином Adobe - он пытается получить конец PDF (TOC), Squid начинает загрузку всего файла, Adobe останавливает работу и отображает пустую страницу.
Вместо этого научитесь "щелкать правой кнопкой мыши, сохранять как" - PDF-файл не является веб-документом и не должен просматриваться в браузере.
Эта проблема иногда приводила к ошибке 109 в Acrobat Reader при просмотре PDF.
Чтобы отключить запросы диапазона байтов через файл htaccess:
# Disable Byte-range for PDF files
<Files *.pdf>
Header set Accept-Ranges none
</Files>