У меня есть веб-сервер Apache, в котором есть подпапка для изображений. По какой-то причине некоторые файлы .png возвращаются как text / html, а не как image / png.
Нет ничего, указывающего на проблему с разрешением, и файлы возвращаются с кодом 200 и в полном размере. Я убедился, что установлен image / png, и даже попытался заставить его использовать .htaccess
Есть идеи, где искать дальше?
Изменить: похоже на проблему конфигурации .htaccess в родительском каталоге.
Проблема для меня заключалась в том, что файл изображения, который нужно доставить, был назван pear.php.net-sos8j3lis2j.png
.
Apache's AddHandler
директива - используется для назначения интерпретатора PHP файлам .php - поддерживает несколько расширений, и pear.php.net.png
рассматривался как имеющий три расширения: .php
, .net
и .png
. .php
был первым, к которому был вызван интерпретатор php.
text/html
затем был отправлен apache или PHP, я не знаю.
Что мне нужно было сделать, чтобы исправить проблему:
Заменить все экземпляры
AddHandler php-cgi .php
с участием
<FilesMatch \.php$>
SetHandler php-cgi
</FilesMatch>
Вы убедились, что файлы png являются действительными файлами изображений? Если вы работаете на платформе Linux, вы можете попробовать команду file
file somefile.png
Эта команда должна вернуть что-то вроде
PNG image data, 318 x 15, 8-bit/color RGB, non-interlaced
Вы также можете попробовать просмотреть файл с помощью программы просмотра изображений.
Поищите .png, .PNG, .pNG и .PNg.