Изменение Content-Typeиз .txtфайлов может работать, но это довольно рискованный способ решить эту проблему, потому что вы не можете гарантировать 100% , что браузер пользователя будет реагировать , как вы ожидаете. И, кроме того, вводить в заблуждение метку .txtфайла как двоичного файла.
Вместо этого я предлагаю использовать стандартный способ заставить браузер загружать, а не отображать файл, то есть использовать Content-Dispositionзаголовок со значением attachment( RFC 2183 , см. Также RFC 2616 ).
Например, этот locationблок nginx отправит такой заголовок с .txtфайлами под /downloads/URI, и поэтому они будут вынуждены скачать:
location ~ ^/downloads/.*\.txt$ {
add_header Content-Disposition "attachment";
}
Таким образом, вы можете добавить другие соответствующие соответствия и т. Д., Соответствующие вашей конфигурации.