画像用のサブフォルダーを持つ 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 を探してください。