Apache возвращает текст / HTML на некоторых файлах PNG
У меня есть веб-сервер Apache, который имеет подпапку для изображений. По некоторым причинам несколько файлов.png возвращаются как text/html, а не как image/png.
Ничто не указывает на проблему с правами доступа, и файлы возвращаются с кодом 200 и в полном размере. Я удостоверился, что image / png установлен, и даже попытался заставить его с помощью.htaccess
Есть идеи, где искать дальше?
Изменить: выглядит как проблема конфигурации.htaccess в родительском каталоге.
3 ответа
Вы удостоверились, что файлы png являются допустимыми файлами изображений? Если вы работаете на платформе Linux, вы можете попробовать команду file
file somefile.png
Эта команда должна вернуть что-то вроде
PNG image data, 318 x 15, 8-bit/color RGB, non-interlaced
Вы также можете попробовать просмотреть файл с помощью программы просмотра изображений.
Проблема для меня заключалась в том, что файл изображения для доставки был назван pear.php.net-sos8j3lis2j.png
,
апача 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>