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>

Может быть, искать.png, .PNG, .pNG и.PNg.

Другие вопросы по тегам