Одной из стандартных задач, которую можно решить с помощью .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 .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, запросив пароль в интерактивном режиме.
После создания всех логинов файл необходимо загрузить на сервер.