Apache retornando texto/html em alguns arquivos png

Apache retornando texto/html em alguns arquivos png

Eu tenho um servidor web Apache que possui uma subpasta para imagens. Por algum motivo, alguns dos arquivos .png são retornados como texto/html e não como imagem/png.

Não há nada indicando problema de permissão e os arquivos retornam com código 200 e em tamanho real. Eu me certifiquei de que image/png estava definido e até tentei forçá-lo com .htaccess

Alguma ideia de onde procurar a seguir?

Editar: parece um problema de configuração .htaccess em um diretório pai.

Responder1

Você certificou-se de que os arquivos png são arquivos de imagem válidos? Se você estiver em uma plataforma Linux, você pode tentar o comando file

file somefile.png

Esse comando deve retornar algo parecido com

PNG image data, 318 x 15, 8-bit/color RGB, non-interlaced

Você também pode tentar visualizar o arquivo com um visualizador de imagens.

Responder2

O problema para mim foi que o arquivo de imagem a ser entregue se chamava pear.php.net-sos8j3lis2j.png.

AddHandlerDiretiva do Apache- usado para atribuir o interpretador PHP a arquivos .php - suportamúltiplas extensões, e pear.php.net.pngfoi visto como tendo três extensões .php: .nete .png. .phpfoi o primeiro, para que o interpretador php fosse invocado.

text/htmlfoi então enviado pelo Apache ou PHP, não sei.


O que eu tive que fazer para resolver o problema:

Substitua todas as instâncias de

AddHandler php-cgi .php

com

<FilesMatch \.php$>
    SetHandler php-cgi
</FilesMatch>

Responder3

Talvez procure por .png, .PNG, .pNG e .PNg.

informação relacionada