Apache が一部の png ファイルで text/html を返す

Apache が一部の png ファイルで text/html を返す

画像用のサブフォルダーを持つ Apache Web サーバーがあります。何らかの理由で、いくつかの .png ファイルが image/png ではなく text/html として返されます。

権限の問題を示すものは何もなく、ファイルはコード200でフルサイズで返されます。image/pngが設定されていることを確認し、.htaccessで強制してみました。

次にどこを見ればよいか、何かアイデアはありますか?

編集: 親ディレクトリの .htaccess 構成の問題のようです。

答え1

pngファイルが有効な画像ファイルであることを確認しましたか?Linuxプラットフォームの場合は、fileコマンドを試すことができます。

file somefile.png

そのコマンドは次のようなものを返すはずです

PNG image data, 318 x 15, 8-bit/color RGB, non-interlaced

画像ビューアでファイルを表示することもできます。

答え2

私にとって問題だったのは、配信される画像ファイルの名前が だったことですpear.php.net-sos8j3lis2j.png

ApacheのAddHandler指令- PHPインタープリターを.phpファイルに割り当てるために使用されます - サポート複数の拡張機能、およびpear.php.net.pngの 3 つの拡張子を持つとみなされました。.php.net最初に、php インタープリターが呼び出されました。.png.php

text/htmlその後、Apache または PHP によって送信されましたが、わかりません。


問題を解決するために私がしなければならなかったこと:

すべてのインスタンスを置換

AddHandler php-cgi .php

<FilesMatch \.php$>
    SetHandler php-cgi
</FilesMatch>

答え3

おそらく、.png、.PNG、.pNG、.PNg を探してください。

関連情報