Для начала нужно проверить настройки самого Apache, настройки могут отличаться в зависимости от версии.
Проверить наличие модуля mod_auth_basic.so (mod_auth.so) в папке /usr/lib/apache2/modules/ (C:\Program Files\Apache Group\Apache2\modules).
Проверить подключен модуль или нет, для этого проверьте наличие auth_basic.load в /etc/apache2/mods-enabled/ либо если его там нет, сделайте линк на него из папки /etc/apache2/mods-available/. Либо если настройки по другому, открыть файл /etc/httpd/conf/httpd.conf(C:\Program Files\Apache Group\Apache2\conf\httpd.conf) и убедиться в том что строка не комментарий:
В файле apache2.conf (httpd.conf) проверить включены ли директивы:
здесь мы указали имя для файлов access (оставили по-умолчанию)
а здесь разрешили использование access файлов, так же это можно указывать непосредственно в настройках виртуального сервера.
Создадим файл .htaccess в папке с вами сайтом.
AuthUserFile <путь к файлу .htpasswd> #указывает путь к файлу авторизации
AuthType Basic #тип авторизации по паролю
AuthName <хоть что> #подсказка для пользователя
Require valid-user #проверка пользователя по файлу htpasswd
Order allow,deny #порядок чтиния из директив allow deny
Allow from <ip> #разрешить без пароля
Satisfy any #остальных проверить по паролю, если поставить all то пропустит только если ip разрешен в allow и пароль верен.
Теперь нужно сделать файл htpasswd. Для этого в apache есть утилита htpasswd.
-cm — это ключи для утилиты. Ключ с — указывает, что необходимо создать новый файл с паролями. Если файл с таким именем уже существует, то он будет перезаписан. Ключ m — определяет шифрование по алгоритму MD5.
.htpasswd — имя файла с паролями (можете использовать любое имя).
admin — имя посетителя, которому будет разрешен доступ в закрытую область сайта.
.htpasswd — имя файла с паролями (можете использовать любое имя).
admin — имя посетителя, которому будет разрешен доступ в закрытую область сайта.
[root@test]# htpasswd -m .htpasswd user
Теперь файлик нужно положить туда где вы прописали в файле htaccess.




Криптографическая стойкость htpasswd оставляет желать лучшего. Так что с этим надо осторожно. Примерно таким же образом Auth-Basic можно авторизовать пользователей не из локального файла, а LDAP-сервера.
ОтветитьУдалитьна самом деле есть еще возможность использовать модуль mod_auth_digest. там идет шифрование по md5.
ОтветитьУдалить