Установить пароль на папку или файл сайта помощью .htaccess и .htpasswd (веб сервер Apache)

Частенько бывает ситуация, когда необходимо на сайте защитить папку паролем и или поставить пароль на целый сайт. На веб сервере Apache это возможно при использовании файлов .htaccess и .htpasswd.

1.Для начала, надо создать файл .htpasswd

а) исходя из нашил реалий, не каждый пользователь хостинга, имеет доступ к серверу по ssh. Так что если дома Вы счастливый обладатель OS Windows, для этого можно использовать утилиту htpasswd.exe, что бы создать файл .htpasswd на своём домашнем компьютере.

Скачать htpasswd.exe

Нажмите "Пуск -> Выполнить", введите в строку ввода cmd и нажмите ОК. Вам откроется окно утилиты CMD. Перейти в директорию с файлом htpasswd.exe. Теперь нужно дать команду на создание файла с паролем. Введите в командную строку следующее:

htpasswd -cm .htpasswd admin

-cm - это ключи для утилиты.

Ключ с - указывает, что необходимо создать новый файл с паролями. Если файл с таким именем уже существует, то он будет перезаписан.

Ключ m - определяет шифрование по алгоритму MD5.

.htpasswd - имя файла с паролями (можете использовать любое имя).

admin - имя посетителя (логин), которому будет разрешен доступ в закрытую область сайта.

В ответ, должен появится запрос на ввод пароля и далее его повтор.

Если все правильно, то в завершении появится сообщение: Adding password for user admin.

И в директории рядом с htpasswd.exe появится файл .htpasswd, к котором будет находиться строка с именем пользователя и хеш-кодом его пароля.

admin:$apr1$yQ3.....$O0qnYRoFRdZQUhs/jDaQP0

Для того, что бы в тот же файл .htpasswd добавить еще одного пользователя следует убрать ключ -c из команды запуска утилиты htpasswd.exe

htpasswd -m .htpasswd admin

Теперь файл .htpasswd можно скопировать на хостинг в отдельную директорию, например в /var/www/html/my-site/admin/

б) если Вы имеете доступ по ssh или у Вас установлен дома Linux, то файл .htpasswd генерируется с помощью утилиты htpasswd из комплекта Apache. Для этого нужно написать в командной строке следующее:

htpasswd -bc .htpasswd имя_пользователя пароль_пользователя

Теперь файл .htpasswd можно скопировать (перенести) в отдельную директорию на хостинге, например в /var/www/html/my-site/admin/

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

а) если надо поставить пароль на всю директорию

AuthType Basic  
AuthName "Private zone. Only for administrator!"
AuthUserFile  /var/www/html/my-site/admin/.htpasswd  
require valid-user

б) если надо поставить пароль на файл

<Files rezult.php>
AuthName "admin-zone"
AuthType Basic
AuthUserFile  /var/www/html/my-site/admin/.htpasswd  
require valid-user     
</Files>

AuthUserFile  - это полный путь к файлу .htpasswd  от корневой директории ОС Linux. В случае с операционной системой Windows так: c:/my_site/.htpasswd. 

AuthName - "произвольный_текст"  например "Панель управления". Этот текст будет отображаться в окне для ввода логина и пароля.

Дело сделано, при попытке обращения к защищенному сайту или каталогу, появится окно с просьбой ввести логин и пароль для входа на сайт. 

Информация на сайте оказалась Вам полезной? Вы нашли ответ на вопрос?

Узнайте как поблагодарить меня

Добавить комментарий


Защитный код
Обновить