В файле конфигурации Apache /usrlocal/etc/apache22httpd.conf проверяем наличие строки:
AccessFileName .htaccess
Ниже добавляем такой блок директив:
<Directory “/usr/local/www/users“>
AllowOverride All
</Directory>
Где /usr/local/www/users – путь к каталогу с файлами ваших сайтов.
Проверяем правильно файла конфигурации:
# httpd -t
Syntax OK
И перезагружаем Apache:
# apachectl restart
Создаем файл с паролями и добавляем в него пользователя setevoy:
# htpasswd -c /абсолютный-путь-к-файлу/.htpasswd setevoy
New password:
Re-type new password:
Adding password for user setevoy
# cat .htpasswd
setevoy:$apr1$:LKDsc$jkdsdcDCiudcSD98
Первое поле – логин пользователя, второе – хеш его пароля.
ВАЖНО: создавайте файл в директории, которая находится “выше” каталога с содержимым сайта/ов, что бы ограничить к нему доступ. Файл паролей не обязательно называть .htpasswd – можно дать любое имя. Желательно – сделать его “скрытым”, .т.е добавить точку в начале имени файла.
Добавим ещё пользователя website:
# htpasswd .htpasswd website
New password:
Re-type new password:
Adding password for user website
Теперь в каталоге, который надо закрыть паролем, создаем файл .htaccess с таким содержимым:
AuthUserFile /абсолютный-путь-к-файлу/.htpasswd
AuthType Basic
AuthName “Password-protected Area”
Require valid-user
Что бы дать доступ к этом каталогу только определенному пользователю или нескольким пользователям, а не всем из файла .htpasswd – меняем строку Require, например – разрешим доступ только пользователям setevoy и website:
AuthUserFile /абсолютный-путь-к-файлу/.htpasswd
AuthType Basic
AuthName “Password-protected Area”
require user setevoy website
Удалить пользователя можно просто редактированием файла .htpasswd, удалив строку с его логином и хешем пароля.
Отредактировать пароль – так же, как создавался пользователь.
Что бы ограничить доступ только к определенному файлу file.txt – указываем такие строки:
<Files file.txt>
AuthUserFile /абсолютный-путь-к-файлу/.htpasswd
AuthType Basic
AuthName “Password-protected Area”
Require valid-user
</Files>