Как запаролить директорию или сайт на сервере Apache.
Задача: запаролить директорию или весь сайт и как установить пароль на папки (или весь сайт) с помощью Apache.
должно получится при обращении к серверу:
1 - Создаем файл паролей путь к которому указывается в качестве параметра к директиве AuthUserFile. Пароли в этом файле должны быть шифрованными, чего можно достигнуть с помощью программы htpasswd, входящей в поставку Apache.
Если Вы набрали в unix shell команду htpasswd и система сообщила, что такого файла нет, выясните у своего хостинг-провайдера где же находится htpasswd.
допустим, htpasswd у нас доступен :
> htpasswd
Usage:
htpasswd [-cmdps] passwordfile username
htpasswd -b[cmdps] passwordfile username password
-c Create a new file.
Здесь мы не будем рассматривать все параметры этой команды, но Вы можете сами прочитать подробности, запустив htpasswd в unix shell или ознакомившись с соответствующей страницей документации по Apache.
Итак, изначально у нас еще нет файла с паролями и нам нужно его создать :
> htpasswd -c .htpasswd user1
New password:
Re-type new password:
Adding password for user user1
После нажатия Enter, будет предложено вести пароль (с помощью данной команды можно изменить уже присвоенный пароль). После выполнения данной операции htpasswd создаст файл .htpasswd, в котором окажется пользователь user1 и его пароль в зашифрованном виде:
А теперь мы хотим добавить еще одного пользователя. Так как файл с паролями у нас уже есть, мы просто не будем использовать ключ '-c' :
> htpasswd .htpasswd user2
New password:
Re-type new password:
Adding password for user user2
Можно сделать тоже самое на локале с помощью программы htpasswd, входящей в поставку Apache - если нету -берите тут и запускайте ее из командной строки (cmd)
далее все тоже самое (см. выше)
2 - В директории которую хотим запаролить создаем файл .htaccess. Если надо запаролить весь сайт, тогда файл .htaccess помещаем в корень сайта.
В .htaccess прописываем следующие строки:
AuthType Basic
AuthName "Enter password"
AuthUserFile "/usr/local/www/data/.htpasswd"
Require valid-user
Где AuthName "Enter password" – ваше сообщение
“/usr/local/www/data/.htpasswd” путь до файла с паролями.
Обычно на живом хостинге такой (может конесно отличаться - но папка с файлом паролей должна быть задана верно):
/home/s/логин_на_хосте/имя_сайта/public_html/data/.htpasswd
Все готово!
Теперь доступ к папке (или сайту) возможен только после авторизации.