Иногда нужно чтобы некоторые типы файлов скачивались при клике по ссылке на них, но вместо того они открываются в браузере. Такая проблема часто возникает, например, с файлами pdf, txt, html и другими.

Запретить открытие файла в браузере (чтобы он скачивался) достаточно просто — для этого нужно в файле .htaccess, который находится в папке сайта (если этого файла там нет — создайте его и откройте любым текстовым редактором) добавьте строчку:

AddType application/octet-stream .txt

Где вместо .txt  нужно подставить расширение того файла, для которого нужно включить принудительное скачивание.

Что эта директива делает?

AddType указывает серверу, какой MIME-тип отдавать в заголовке ответа «Content-Type»  при запросе посетителем файла с указанным расширением.Тип application/octet-stream — говорит браузеру что дальше будут идти данные какого-то (абсолютно не важно какого) двоичного файла, которые нужно бережно сохранить на диск. 🙂

Коротенькая справка.

Content-Type — это один из http-заголовков используемых для указания, что именно за данные передаются вслед за ним. В зависимости от того, какой mime-type получен — браузер посетителя определяет — что с получаемыми данными делать.

Так, при указании сервером вот такого заголовка:

Content-Type: image/jpeg

браузер посетителя приготовится принимать картинку в формате jpeg, и после получения данных покажет её пользователю.

А при вот таком

Content-Type: text/plain

получит и покажет самый обычный текст.