This page is hosted for free by zzz.com.ua, if you are owner of this page, you can remove this message and gain access to many additional features by upgrading your hosting to PRO or VIP for just 32.50 UAH.

Веб мастер - .htaccess

Не работает? Начинай читать инструкцию.

Паролирование директорий на сайте с помощью файла .htaccess

Файл .htaccess можно использовать для установки  ограниченного доступа по паролю, к определенным папкам, файлам и группам файлов. Можно привести рабочий пример, и объяснить его содержимое:

Предлагаю ознакомиться с предложениями моих партнёров

AuthName "Protected area, need authorization"
AuthType Basic
AuthUserFile /home/t/test/.authfile
require valid-user

Данный файл нужно положить в директорию, на которую мы будем ставить пароль.

Директива AuthName покажет сообщение при запросе пароля, все сообщения необходимо писать в одну строчку, синтаксис директивы тривиален:

AuthName "SEE TEXT"

Директива AuthType выбирает тип аутентификации. Есть следующие типы: Basic или Digest. Второй может не поддерживаться некоторыми браузерами, поэтому не рекомендуется для использования.

AuthType Basic | Digest

AuthUserFile указывает на имя файла с паролями для аутентификации пользователей (пароли в этом файле будут шифрованными). Путь к файлу с паролями пишется относительно корня веб сервера Apache. Хранить файл с паролями надо в папке, доступ к которой закрыт для пользователей (лучше поместить этот файл за пределами вашего сайта).

Если у Вас установлена операционная система Windows, Вы можете подключится к серверу по SSH и воспользоваться утилитой htpasswd

Запустив htpasswd без параметров мы увидим:

host@user ~ # htpasswd
Usage:
htpasswd [-cmdps] passwordfile username
htpasswd -b[cmdps] passwordfile username password
-c Create a new file.
host@user ~ #

Я не буду рассматривать все параметры этой команды, вы можете сами прочитать подробности, запустив htpasswd в unix shell, или ознакомитьсяс соответствующей документации по Apache.

Итак, изначально у нас еще нет файла с паролями и нам нужно его создать:

host@user ~ # htpasswd -c authfile test1
New password:
Re-type new password
Adding password for user test1
host@user ~ #

После выполнения данной операции htpasswd создаст файл passwords, в котором окажется пользователь test1 и его пароль в зашифрованном виде:

host@user ~ $ cat .authfile
test1:zgco1KREjBY8M
host@user ~ $

А теперь мы хотим добавить еще одного пользователя. Так как файл с паролями у нас уже есть, мы просто не будем использовать ключ '-c' :

host@user ~ # htpasswd .authfile test2
New password:
Re-type new password:
Adding password for user test2

host@user ~ $ cat .authfile
test1:zgco1KREjBY8M
test2:eN3uA6t0kzV1c
host@user ~ $

Директива паролирования директорий Require определяет пользователей, которые могут получить доступ

Require USER_NAME | valid-user

Указывая valid-user, Вы разрешаете доступ всем пользователям, перечисленным в файле паролей.

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

AuthName "Protected area, need authorization"
AuthType Basic
AuthUserFile /home/t/test/.authfile
require palexa vasa igor

Также, как и с запретом доступа по IP, здесь можно использовать расширение <Files>. Ниже приведу два примера:

установка пароля на один определенный файл.

<Files "passwd.html">
AuthName "Protected area, need authorization"
AuthType Basic
AuthUserFile /home/t/test/.authfile
require valid-user
</Files>

установка пароля на группу файлов.

<Files "\.(key)$">
  AuthName "Protected area, need authorization"
  AuthType Basic
  AuthUserFile /home/t/test/.authfile
  require valid-user
</Files>

Важно помнить, что при таком ограничении доступа, пароли по каналам связи передаются в открытом виде и при некоторых обстоятельствах могут быть перехвачены не доброжелателями. Поэтому рекомендуется в целях безопасности предоставлять доступ к закрытым областям сайта через защищенное SSL-соединение.

Предлагаю ознакомиться с предложениями моих партнёров