Пример: как закрыть директорию паролем.

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

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

Если вы используете Windows и не хотите пользоваться unix shell для генерации паролей, можно загрузить Windows-версию программы htpasswd здесь и создать файл с паролями на своем компьютере, после чего загрузить его на сервер. Если у вас уже установлена Windows-версия Apache, файл 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, запросив пароль интерактивно

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

  • htaccess, пароль
  • 3 Пользователи нашли это полезным
Помог ли вам данный ответ?

Связанные статьи

Индексный файл

Индексный файл или файл-индекс — это тот файл, который открывается по умолчанию при обращении...

Назначение и использование файла .htaccess.

Файл .htaccess (обратите внимание, что первый символ в названии файла — точка) применяется для...

Пример: как переопределить кодировку html-документов

Мы хотим «объяснить» веб-серверу что все html-документы, которые размещены на сервере, нужно...

Пример: запрет и разрешение выдачи листинга.

В ряде случаев требуется выводить список файлов в каталоге (листинг каталога) в случае отсутствия...

Собственные страницы ошибок 404, 403 итд.

Иногда посетители веб-сервера запрашивают страницы, которые по каким-то причинам на сервере не...