Как ограничить доступ к каталогам сайта Самый простой способ это сделать - использовать встроенную авторизацию веб-сервера apache. Для этого используется файл .htaccess c соответствующими директивами для apache. В самом простом случае директивы должны быть такими:
Директива authuserfile задает путь к файлу, содержащему имена и пароли пользователей. Он может иметь практически любое имя и располагаться в любом каталоге, главное - чтобы веб-сервер мог его прочитать, что требует установки соответствующих прав доступа к этому файлу (на нашем сервере - 644). Однако традиционно такие файлы называют .htpasswd При таком наборе директив доступ к каталогу получат все пользователи, перечисленные в .htpasswd. Чтобы дать доступ только некоторым из них, вместо require valid-user нужно в .htaccess записать директиву require user список_имен_пользователей где список_имен_пользователей имеет вид: имя_пользователя1 имя_пользователя2 имя_пользователя3... Как создать файл .htpasswd Хотя .htpasswd - это обычный текстовой файл, для работы с ним есть специальная утилита - ее вариант для unix называется htpasswd Команда htpasswd -c .htpasswd имя_пользователя создаст новый файл .htpasswd, запросит пароль для пользователя и создаст запись о пользователе с указанными именем и паролем в этом файле.
Как добавить или изменить запись о пользователе в .htpasswd Команда htpasswd имя_файла имя_пользователя запросит пароль для пользователя и создаст запись о пользователе с указанными именем и паролем в указаном файле или изменит пароль пользователя в уже существующей записи. Как удалить запись о пользователе из .htpasswd Для этого достаточно открыть .htpasswd обычным текстовым редактором, найти и удалить строчку, начинающуюся с имя_пользователя:
Подскажите, пожалуйста, как я могу создать работающий файл .htpasswd ?
Вроде бы ясно, что пароли, соответствующие логинам, хранятся в этих файлах в закриптованной форме. Пробовал разные утилитки для win, которые криптуют пароли по казалось бы подходящей схеме. Но на практике пароли не распознаются.
Чем в windows создавать файлы .htpasswd, чтобы они работали? Создавать эти файлы лучше через скрипт.
1. Создать файл паролей, выполнив из скрипта команду /usr/local/apache/bin/htpasswd -c -b passwordfile username password
где passwordfile это, например, /home/mydomainru/.htpasswd usernanme и password соответственно имя пользователя и пароль
2. В директории, которую Вы паролируете, создать файл .htaccess
authtype basic authname security system authuserfile /home/mydomainru/.htpasswd