Назад | Перейти на главную страницу

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

У меня есть веб-сервер 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.