Apache возвращает text/html для некоторых файлов png

Apache возвращает text/html для некоторых файлов png

У меня есть веб-сервер Apache, в котором есть подпапка для изображений. По какой-то причине некоторые файлы .png возвращаются как text/html, а не как image/png.

Нет ничего, что указывало бы на проблему с правами доступа, и файлы возвращаются с кодом 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.

AddHandlerДиректива Apache- используется для назначения интерпретатора 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>

решение3

Возможно, вам следует поискать .png, .PNG, .pNG и .PNg.

Связанный контент