Я хочу заблокировать (не перенаправить) доступ к веб-сайту через http, но не в том случае, если пользователь вводит https.
Я использую Windows 7. Как это может быть сделано?
Это невозможно Файл HOSTS влияет только на запросы DNS. Когда ваш браузер запрашивает http://example.com/, компьютер выполняет поиск DNS на example.com. Когда ваш браузер запрашивает https://example.com/, он также выполняет поиск DNS на example.com, и результат всегда будет одинаковым для обоих, потому что они одинаковы. http против https - это просто другой протокол.
Чтобы ответить на ваш большой вопрос о том, как его заблокировать, какова ваша среда? Это просто домашний компьютер, или вы делаете это для большого количества компьютеров в корпоративной среде? Еще несколько деталей о ваших потребностях, и эта ситуация будет полезна для решения вашей проблемы.
Как уже говорилось в других ответах, этого нельзя сделать с помощью файла HOSTS.
Это можно сделать с помощью брандмауэра Windows. Добавьте исходящее правило, чтобы заблокировать http на сайте (по умолчанию правило для исходящих разрешено, поэтому вам нужны только те правила, которые вы хотите заблокировать).
Зайдите в Панель управления и Свойства обозревателя. На вкладке «Безопасность» в разделе «Ограниченные сайты» добавьте URL-адрес http-версии сайта. При желании вы можете добавить URL-адрес https в разделе «Надежные сайты».
Это не будет полностью блокировать доступ, но отключит практически все функции, кроме простой визуализации HTML.
Альтернативой может быть использование прокси-сервера.