Какой MIME-тип у файлов .php?
MIME-тип (медиатип) для файлов PHP-скрипт с расширением .php — application/x-httpd-php. Файлы PHP должен выполнять сервер, их никогда не следует отдавать как обычные файлы. Если браузер скачивает ваш PHP-код, обработчик PHP не настроен — это проблема безопасности, так как исходный код (и любые пароли в нём) становится доступен всем.
Заголовок Content-Type
Content-Type: application/x-httpd-php
Настройка сервера
| Сервер | Конфигурация |
|---|---|
Nginx (mime.types или 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') или res.setHeader('Content-Type', 'application/x-httpd-php') |
| Amazon S3 | Задайте Content-Type: application/x-httpd-php для объекта (метаданные) или передайте --content-type application/x-httpd-php в aws s3 cp |
Нужно ли сжимать файлы .php?
Да. PHP-скрипт — это несжатые данные, поэтому включение gzip или Brotli для application/x-httpd-php обычно уменьшает объём передачи на 50–80 %. Убедитесь, что список сжимаемых типов на вашем сервере включает этот тип — проверить это можно с помощью теста сжатия сайта.
Почему важен MIME-тип
Браузер решает, что делать с ответом — отобразить, выполнить, воспроизвести или скачать — по заголовку Content-Type, а не по расширению файла. При X-Content-Type-Options: nosniff неправильный тип приводит к тому, что таблицы стилей и скрипты полностью блокируются. Для загрузки файлов никогда не доверяйте типу, который передал клиент; проверяйте содержимое файла (его сигнатуру, или «магические байты») на сервере.
Поиск MIME-типов
Поиск по всем распространённым расширениям файлов и MIME-типам, с готовыми заголовками Content-Type для копирования.
Часто задаваемые вопросы
Какой MIME-тип у .php?
application/x-httpd-php.Как задать Content-Type для .php в Nginx?
application/x-httpd-php php; есть в блоке types (обычно в файле /etc/nginx/mime.types), и перезагрузите Nginx.