Пароль средствами .htaccess и .htpasswd

By | September 8, 2009

Advertisement from Google

Пароль средствами .htaccess и .htpasswd

Цель: Запаролить отдельную папку сайта. Например у нас есть сайт http://example.com и нам надо поставить пароль на папку http://example.com/admin/

Справится с этой задачей легко, и этом нам помогут два файла: .htaccess и .htpasswd.

Сначала создадим в паке admin файл .htaccess с таким содержимым:

[code lang=”apache”]AuthUserFile /полный_путь_к_файлу/.htpasswd
AuthGroupFile /dev/null
AuthName подсказка
AuthType Basic
require valid-user
[/code]

Директива AuthUserFile указывает на место расположения файла .htpasswd, его у вас пока нет. Мы его создадим немного попозже. Создавать мы его будем на уровень выше нашего сайта. То есть если сайт лежит в /usr/local/www/example.com/www/ то файл .htpasswd желательно создать в  /usr/local/www/example.com/ и в директиве AuthUserFile указать /usr/local/www/example.com/.htpasswd.

Все остальное оставим как есть, данный вариант нам подойдет. Если хотите узнать про файл .htaccess то читайте http://httpd.apache.org/docs/trunk/howto/htaccess.html или http://htaccess.net.ru/.

Сохраним изменения и дадим правильные права на файл


Advertisement from Google

[code lang=”bash”]chmod 0644 .htaccess
[/code]

Далее займемся файлом .htpasswd в нем будут хранится пользователи и пароли которым можно получить доступ к папке. Хоть пароли хранятся в зашифрованном виде, файл все равно лучше поместит на уровень выше нашего сайта.

Для создания файла в *nix системах в нашем распоряжении имеется утилита htpasswd, будем использовать ее

[code lang=”bash”]cd /usr/local/www/example.com/
htpasswd -c .htpasswd имя_пользователя
[/code]

Утилита предложит ввести пароль что вы и сделаете.

Выполняем:

[code lang=”bash”]chmod 0644 .htpasswd
[/code]

Ну в общем и все. Теперь при входе по адресу http://example.com/admin/ у вас будет вылетать окошко ввода логина и пароля.

П.С. В интернете куча статей на данную тематику. Просто для себя на память записал. 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *