web-dev-qa-db-ja.com

416要求された範囲は満足できません

コンテキスト:Social Engineというソフトウェアパッケージを使用しています。それは非常にバグが多いです。

とにかく、私はSocial Engineの人々にアップグレードを依頼して(さらには支払った)、彼らが最終的にそうしたとき、私はサイトにログインし、スタイルがすべて欠落していることに気付きました。サポートチケットを開いたところ、それは416エラーであり、ISPに問い合わせることでした。

このエラーは、ソフトウェアの書き込み可能なフォルダーにあるCSSファイルへの直接リンクをテストすることで見つかりました。

http://ministersdev3.themonastery.org/application/css.php?request=application/themes/monastery-theme/theme.css&c=6

私は非常にまれなエラーであることを発見するためだけに調査を始めました。Ubuntu10.10 Linodeサーバー(APC拡張機能がインストールされた最新のApacheおよびPHP5を実行)で範囲要求をオフにするための提案を見つけることができませんでした。おそらくそれはソフトウェアの問題ですか?どういうわけかAPCでのキャッシュは機能していますか?このソフトウェアのキャッシングを60秒にリセットし、APCを使用していることを確認しました。まだサイコロはありません。

彼らのソフトウェアがパッチを検討する必要があることをしているのでしょうか?

19
Lynn

この問題は、ブラウザが元のCSSファイルをキャッシュし、新しいファイルのバイト範囲をリクエストしようとしたことが原因である可能性があります。たとえば Chromeのこのバグ を参照してください。

範囲要求を無効にする限り、ブラウザーのキャッシュをクリアする必要はないかもしれませんが、必要な場合は、次のApache構成を試すことができます。

Header unset Accept-Ranges

これは、Rangeリクエストヘッダーを使用してファイルのバイト範囲をリクエストできないことをクライアントに伝えます。

10
cmbuckley

.htaccessファイルの上部にあります

Header set Accept-Ranges none
RequestHeader unset Range 

お役に立てれば。

6
Xman Classical

ISPから返されたヘッダーをインターセプトし、416ステータスコードを受け取っていることを確認します。その場合は、ISPに送信するヘッダーをインターセプトし、範囲ヘッダーをドロップします。これにより、サーバーからファイル全体が送信されます。

3
james.garriss