Apache devuelve texto/html en algunos archivos png

Apache devuelve texto/html en algunos archivos png

Tengo un servidor web Apache que tiene una subcarpeta para imágenes. Por alguna razón, algunos de los archivos .png se devuelven como texto/html y no como imagen/png.

No hay nada que indique un problema de permisos y los archivos regresan con el código 200 y en tamaño completo. Me aseguré de que image/png estuviera configurado e incluso intenté forzarlo con .htaccess

¿Alguna idea de dónde buscar a continuación?

Editar: parece un problema de configuración de .htaccess en un directorio principal.

Respuesta1

¿Te aseguraste de que los archivos png sean archivos de imagen válidos? Si estás en una plataforma Linux, puedes probar el comando de archivo

file somefile.png

Ese comando debería devolver algo como

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

También puedes intentar ver el archivo con un visor de imágenes.

Respuesta2

El problema para mí fue que el archivo de imagen que se entregaría se llamaba pear.php.net-sos8j3lis2j.png.

AddHandlerdirectiva de apache- que se utiliza para asignar el intérprete PHP a archivos .php - admitemúltiples extensiones, y pear.php.net.pngse consideraba que tenía tres extensiones: .php, .nety .png. .phpfue el primero en invocarse el intérprete de php.

text/htmlLuego fue enviado por Apache o PHP, no lo sé.


Lo que tuve que hacer para solucionar el problema:

Reemplazar todas las instancias de

AddHandler php-cgi .php

con

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

Respuesta3

Quizás busque .png, .PNG, .pNG y .PNG.

información relacionada