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