На днях писал пост о том, как отключить перезагрузку после обновления Windows, и столкнулся с маленькой проблемой. Самое простое решение вопроса было в том, чтобы скачать и запустить файлик с расширением «.reg». Но оказалось, что вместо скачивания, браузер тупо открывает этот файл, как обычную страничку.
Хватит это терпеть! — решил я и быстренько исправил ошибку. Потом подумал, что наверняка и читателям было бы полезно знать, как делать, чтобы файл не открывался, а скачивался.
Собственно тут даже писать не о чем, настолько все просто. Потому, в начале, капелька теории.
Для того, чтобы операционная система знала, что делать с файлом, ему, с давних времен (когда люди еще сидели в темном DOS’е, без мышки и прочих удобств) к названию после точки добавляли 3 буквы. Сейчас можно и больше, но в те годы было жесткое правило: не более 8-ми латинских знаков до точки, и не более 3-х после нее. Вот эти буквы в конце названия файла, после точки, и назывались расширением.
Есть расширения стандартные. Например, когда вы кликаете по файлу с расширением .gif — операционка знает, что это картинка, и вызывает соответствующую программу, которая ее открывает.
Если кликните по файлу с расширением .avi — запустится проигрыватель, и вы увидите видео. Ну и т.д.
Вот и браузер (программа, через которую вы в данный момент смотрите сайт www.lexium.ru) тоже знает и понимает некоторые расширения. Одни он открывает, другие предлагает сохранить на диске.
Но случается, что расширение ему не знакомо. Так произошло и с файлом antirebut.reg… Решение довольно простое. Сам сервер, отдавая данные, может сообщить браузеру, к какому типу запрашиваемый файл относится.
Как это делается на практике.
1. Создаем отдельную папку, в которой будут храниться файлы на скачивание.
2. Закачиваем в нее файл .htaccess с вот такими строчками внутри (естественно, без циферок):
Options -Indexes RewriteEngine on RewriteBase / options +FollowSymLinks RewriteRule ^(.*)$ $1 [type='application/x']
.htaccess — это конфигурационный файл сервера. Строчка, которую мы в нем прописали, говорит серверу, что всё, лежащее в данной папке и всех подпапках, является файлом приложения. А раз приложение, значит браузер, при скачивании, не должен пытаться открыть файл, как текст или картинку.
3. Теперь закачиваем в эту папку любые файлы и убеждаемся, что даже html-странички из нее скачиваются, как архив или программа. У меня работает.
Как видите, проще некуда! Однако новичок может грохнуть на решение этой задачи несколько часов, поскольку не знает, с какой стороны копать.
А вы не копайте. «Велосипед» уже изобретен, так что пользуйтесь))
С вами, был доктор Лексиум.
Не забывайте подписаться на обновления, чтобы ничего интересного не пропустить!
Сделал как вы сказали не помогло?
Добавил в код пару строк. Попробуйте такой вариант.
Весь интернет облазил в поисках решения задачи, ответ нашел только здесь. Выражаю автору статьи огромную благодарность.
Спасибо. Надеюсь помогло. К сожалению попадаются сервера, где через .htaccess не получается настроить.
Вот прям РЕСПЕКТ — РЕСПЕКТИЩЕ!!!! Уже который год искал простое решение (не скрипты, не плагин и т.д.) нигде нет, а здесь ЕСТЬ — автору ЛАЙК:) Прокатило для жпег, зип, пэдэф, тхт и даже для хтмл, не помогает только для PHP — их видать сама CMSка интерпретирует только как код.
Рад, что пригодилось. Думаю, можно php заставить скачиваться, но придётся попрыгать с бубном. Некоторые панели управления позволяют отключать php для поддоменов. Вот самый простой вариант, утащить на него скачиваемые PHP файлы и пр. Ну или поиграться с ремувхендлером.