Одной из стандартных задач, которую можно решить с помощью .htaccess, является ограничение доступа к определенному каталогу на сервере. Например, вам нужно предоставить доступ к определенному каталогу отдельным посетителям, предоставив им уникальный логин и пароль.

В каталоге, к которому мы хотим ограничить доступ по паролю, создаем файл .htaccess со следующими директивами:

AuthType Basic

AuthName "Some Name"

AuthUserFile /home/uXXXXX/.htpasswd

require valid-user 

Путь  /home/uXXXXX/.htpasswd обозначает полный путь к файлу паролей на нашем серверном диске. Если, например, вы разместите файл .htpasswd (он будет содержать пароли) в своей домашней директории, куда попадаете, заходя на сервер по FTP, то путь к этому файлу будет выглядеть как  /home/uXXXXX/.htpasswd , где  uXXXXX  — имя ваших виртуальных сайтов (например,  u12345 ).

В директиве AuthUserFile указываем абсолютный путь к файлу с логинами/паролями, который создадим чуть позже. Если вы создаете файл .htaccess на своем компьютере, а не напрямую на сервере с помощью текстового редактора, то учтите, что .htaccess необходимо передавать по FTP строго в текстовом (ASCII) режиме.

Создайте файл паролей. Файл паролей должен содержать строки вида login: password . Пароль должен быть зашифрован с использованием алгоритма MD5. Один из способов создания такого файла — использование программы, входящей в состав  Apache  — htpasswd (на нашем сервере она находится в  каталоге /usr/local/bin/  , полный путь —  /usr/local/bin/htpasswd ).

Давайте рассмотрим, как создать файл паролей в оболочке Unix прямо на сервере. Перейдем в оболочку и выполним следующие команды:

  • htpasswd -mbc .htpasswd user1 sNQ7j9oR2w
  • создаем новый файл .htpasswd, в который добавляем запись для пользователя user1 с паролем, указанным в командной строке. Обязательно замените sNQ7j9oR2w на любой ваш пароль – этот пароль показан здесь в качестве примера
  • htpasswd .htpasswd user2

Добавьте пользователя user2 в существующий файл .htpasswd и введите пароль вручную в ответ на соответствующий запрос программы.

Если вы используете Windows и не хотите использовать оболочку unix для генерации паролей, вы можете скачать версию программы htpasswd для Windows здесь и создать файл с паролями на своем компьютере, затем загрузить его на сервер. Если у вас уже установлена ​​версия Apache для Windows, файл htpasswd.exe можно найти в каталоге Program  Files\Apache Group\Apache\bin\  .

Итак, скачайте htpasswd.exe и используйте его для генерации паролей, например:

htpasswd.exe -mc .htpasswd user1

создайте новый файл пароля htpasswd.exe, пароль и его подтверждение будут запрошены в интерактивном режиме

htpasswd.exe -m .htpasswd user2

добавьте пользователя user2 в существующий файл паролей htpasswd.exe, запросив пароль в интерактивном режиме.

После создания всех логинов файл необходимо загрузить на сервер.