Apache でバイト範囲リクエストを無効にする方法はありますか?

Apache でバイト範囲リクエストを無効にする方法はありますか?

PDF ファイルへのリンクがある Web ページがあります ( target="_blank")。リンクをクリックすると、PDF リーダーは Firefox ブラウザー内で灰色の画面を表示するだけです。

そのリンクをコピーして手動で新しいタブで開くと、PDF は正しく表示され、元のリンクをクリックして行われた後続のリクエストも機能するようになりました。これは、ファイルをキャッシュに読み込むときに問題が発生していることを示唆しています。

Adobe PDF リーダー プラグインがバイト範囲要求を行っているように見えます (206 応答が多数表示されます)。これが問題の原因であると思われます。

私は Apache Web サーバーを実行しています。Apache と Adob​​e のバイト範囲要求で問題が発生した人はいますか? 回避策はありますか? PDF のバイト範囲要求を無視するように Apache を構成する方法はありますか?

答え1

リクエストを無効にする方法についての質問が 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 を使用して応答ヘッダーを削除または変更することもできます。

-> Accept-Ranges ヘッダーを none に設定する方法については、mod_headers の Apache ドキュメントを参照してください。

http://mail-archives.apache.org/mod_mbox/httpd-users/200912.mbox/%[メールアドレス]%3E

答え2

この問題により、PDF を表示するときに Acrobat Reader でエラー 109 が発生することがありました。

htaccess ファイル経由でバイト範囲リクエストを無効にするには:

# Disable Byte-range for PDF files
<Files *.pdf>
    Header set Accept-Ranges none 
</Files>

答え3

Squid が途中で止まっていませんか? これは Adob​​e プラグインでよくある問題です。PDF の末尾 (TOC) を取得しようとすると、Squid がファイル全体のダウンロードを開始し、Adobe がタイムアウトして空白ページが表示されます。

代わりに「右クリックして名前を付けて保存」するように学習してください。PDF は Web ドキュメントではないため、ブラウザーで表示しないでください。

関連情報