В файле конфигурации 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>