Почему браузер сохраняет страницу сайта как .exe-файл

Если вместо открытия страницы браузер предлагает сохранить файл — часто с расширением .exe или вовсе без расширения — дело не в вирусе на сайте, а в том, что сервер отдал неверный заголовок Content-Type или не обработал скрипт как код. Браузер получает набор байт, не понимает, что это HTML, и просто скачивает его как бинарный файл.

Почему так происходит

  • Веб-сервер настроен неправильно: для файла с расширением .php, .html или без расширения указан MIME-тип application/octet-stream или application/x-msdownload вместо text/html.
  • PHP-обработчик не подключён или отключён на хостинге — сервер отдаёт исходный код скрипта как обычный файл, а не результат его выполнения.
  • В .htaccess (Apache) или конфиге Nginx есть директива вроде ForceType application/octet-stream или AddHandler, оставшаяся от старых настроек или установленная по ошибке.
  • Антивирус или сама операционная система переименовала загруженный ранее файл, добавив .exe к «подозрительному» расширению — это происходит на стороне пользователя, а не сайта.

Как проверить, в чём причина

Откройте страницу и посмотрите вкладку Network в инструментах разработчика (F12): выберите нужный запрос и проверьте значение заголовка Content-Type в ответе сервера. Если там указано что-то отличное от text/html, проблема на стороне сервера. Также можно проверить заголовки из терминала:

curl -I https://ваш-сайт.ru/страница

Если ответ содержит Content-Type: application/octet-stream для HTML-страницы — это и есть причина скачивания.

Что делать, если это ваш сайт

  • Проверьте .htaccess на наличие строк с ForceType, AddType или AddHandler — при необходимости удалите или исправьте их.
  • Убедитесь, что на хостинге включён и правильно выбран нужный модуль PHP (в панели управления обычно есть выбор версии PHP для домена).
  • В конфиге Nginx проверьте секцию types и наличие строки include mime.types — она отвечает за сопоставление расширений и MIME-типов.
  • После правок обязательно очистите кэш сервера и CDN, если он используется, иначе браузеры будут получать старый заголовок ещё какое-то время.

Что делать, если это чужой сайт

Если файл скачивается на стороне пользователя при переходе на внешний ресурс, сначала проверьте загрузку в другом браузере или в режиме инкогнито — часто дело в кэше или расширениях браузера. Если файл действительно приходит с расширением .exe, открывать его не стоит: сообщите владельцу сайта о проблеме и не запускайте скачанный файл.

Понравилась статья? Поделиться с друзьями: