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

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

AuthType Basic

AuthName "Some Name"

AuthUserFile /home/uXXXXX/.htpasswd

require valid-user 

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

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

Создайте файл паролей. Файл паролей должен содержать такие строки, как логин: пароль . Пароль должен быть зашифрован с использованием алгоритма 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, запрашивая пароль в интерактивном режиме.

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