Инструкция
1
Самый простой способ закрыть доступ к сайту паролем - воспользоваться встроенными средствами веб-сервера, на котором размещён сайт. Настройки сервера Apache таковы, что если в какой-либо папке сервера лежит файл с именем ".htaccess", то при запросе любого документа из этой папки (например, веб-страницы), Apache будет следовать правилам, содержащимся в файле .htaccess. В этот файл можно поместить и директивы ограничения доступа ко всем или только некоторым документам в этой папке. Этим механизмом мы и воспользуемся.Шаг 1: Создаём файл .htaccessСоздать пустой файл с именем .htaccess проще всего в обычном текстовом редакторе - Блокноте. Чтобы при сохранении файла блокнот не добавлял автоматически расширение txt, в выпадающем списке «тип файла» диалога сохранения надо выбрать пункт «Все файлы».Директивы, которые нужно записать в .htaccess могут выглядеть так:AuthType Basic
AuthName "Запретная зона!"
AuthUserFile /usr/host/mysite/.htpasswd
require valid-userПервая строка (AuthType Basic) сообщает серверу, что авторизация посетителей необходима.Вторая (AuthName "Запретная зона!") указывает текст нужно вывести на форме ввода логина и пароля.Третья (AuthUserFile /usr/host/mysite/.htpasswd) показывает путь к файлу, в котором хранятся разрешённые логины и пароли. Здесь обязательно указывается «абсолютный путь», то есть от самого корневого каталога сервера с указанием всего дерева каталогов. Это тот самый полный путь, который мы видим в адресной строке Проводника Windows, когда открываем какую либо папку. На серверах размещения сайтов он обычно имеет вид /pub/home/имя_аккаунта/..../имя_файла. Путь от корня сервера к вашему сайту можно узнать в панели администрирования сайта или спросив у техподдержки вашего хостинга. Можно выяснить и самостоятельно, но это потребует использования какого-либо языка программирования - например, в PHP его можно получить из результатов выполнения команды phpinfo().Четвёртая строка (require valid-user) означает, что ничего, кроме ввода правильных логина и пароля для доступа к документам в этой директории не требуется. А вообще-то можно разбивать посетителей на группы, и давать разным группам различные права доступа к разным папкам.
2
Шаг 2: создаём файл .htpasswdТеперь следует создать файл паролей, путь к которому мы указали в htaccess. По умолчанию ему дают название ".htpasswd", хотя это не обязательно - можно указать и другое имя. В этом файле хранятся пары логин - пароль, причём, пароль здесь содержится в зашифрованном фиде. Для шифровки пароля придётся пользоваться специальной программой - htpasswd.exe. Если у вас на компьютере не установлен сервер Apache, то взять её можно, например, здесь - http://www.intrex.net/techsupp/htpasswd.exe . Запускать ее надо из командной строки. В Windows XP я делаю это так: помещаю htpasswd.exe в отдельную папку, щёлкаю папку правой кнопкой и в меню выбираю пункт «Запуск командной строки здесь». В командной строке надо набрать:htpasswd -cm .htpasswd adminЗдесь:
htpasswd - это имя запускаемой программы;
-cm - модификатор, который указывает, что надо создать новый файл паролей;
.htpasswd - имя для этого нового файла;
admin - логин первого пользователя, который надо добавить в файл.После нажатия на Enter появится запрос на ввод и повтор пароля для этого пользователя. Когда пароль будет введён и подтверждён, в папке создастся нужный нам файл .htpasswd с одной парой логин - пароль.Чтобы добавить ещё пользователей надо снова запустить htpasswd.exe, но вместо модификатора -cm указывать только -m.В командной строке можно посмотреть и справку по htpasswd.exe - для этого нужно набрать:htpasswd.exe /?
Запуск командной строки
3
Шаг 3: загружаем файлы на сервер.Осталось только разместить оба созданных файла (.htaccess и .htpasswd) на сервере. Сделать это можно любым ftp-клиентом или через файл-менеджер в панели администрирования вашего сайта. Файл .htaccess помещаем в папку, где хранятся страницы, которые вам надо защитить паролем. Защищены будут не только файлы этой папки, но всех папок, вложенных в неё. А файл .htpasswd помещаем в папку, путь к которой указали в htaccess. Обычно файл с паролями хранят в папке на один уровень выше корневой директории сайта - чтобы из интернета к нему не было прямого доступа.