¿Cuál es el tipo MIME de los archivos .php?
El tipo MIME (tipo de medio) de los archivos de script PHP con la extensión .php es application/x-httpd-php. Los archivos PHP deben ser ejecutados por el servidor, nunca servidos como archivos estáticos. Si un navegador descarga tu código PHP, el manejador de PHP no está configurado, lo que supone un problema de seguridad, porque el código fuente (y cualquier contraseña que contenga) queda expuesto.
Cabecera Content-Type
Content-Type: application/x-httpd-php
Configuración del servidor
| Servidor | Configuración |
|---|---|
Nginx (mime.types o types {}) | application/x-httpd-php php; |
Apache (.htaccess) | AddType application/x-httpd-php .php |
IIS (web.config) | <mimeMap fileExtension=".php" mimeType="application/x-httpd-php" /> |
| Node.js / Express | res.type('php') o res.setHeader('Content-Type', 'application/x-httpd-php') |
| Amazon S3 | Establece Content-Type: application/x-httpd-php en el objeto (metadatos), o pasa --content-type application/x-httpd-php a aws s3 cp |
¿Deben comprimirse los archivos .php?
Sí. El script PHP son datos sin comprimir, así que activar gzip o Brotli para application/x-httpd-php normalmente ahorra entre un 50 y un 80 % del tamaño transferido. Asegúrate de que la lista de compresión de tu servidor incluya este tipo; compruébalo con la prueba de compresión web.
Por qué importa el tipo MIME
Los navegadores deciden qué hacer con una respuesta (mostrarla, ejecutarla, reproducirla o descargarla) según la cabecera Content-Type, no según la extensión del archivo. Con X-Content-Type-Options: nosniff, un tipo incorrecto hace que las hojas de estilo y los scripts se bloqueen directamente. En las subidas de archivos, nunca confíes en el tipo que envía el cliente; comprueba el contenido del archivo (sus magic bytes) en el servidor.
Búsqueda de tipos MIME
Busca todas las extensiones de archivo y tipos MIME habituales, con cabeceras Content-Type listas para copiar.
Preguntas frecuentes
¿Cuál es el tipo MIME de .php?
application/x-httpd-php.¿Cómo configuro el Content-Type de .php en Nginx?
application/x-httpd-php php; aparezca en el bloque types (normalmente en /etc/nginx/mime.types) y recarga Nginx.