Часто бывает нужно закрыть/ограничить доступ на определенную страницу сайта или сам сайт. Для этих целей существует множество способов,но мы рассмотрим самый простой — это авторизация с помощью самого веб-сервера Apache. Для этого в требуемой директории с сайтом мы создадим файл с названием .htaccess (обязательно именно так!) Хотя он может уже находится в папке — для большинства современных CMS например, он там находится изначально. Тогда надо его немного дополнить.
Вообще процедура авторизация дописывается достаточно просто и состоит из 4х строк:
AuthType Basic
AuthName «You shell not pass! Ho-Ho-Ho!»
AuthUserFile /var/.htpasswd
Require valid-user.
— где AuthName задается в кавычках любой текст,который будет отображен в окне аутентификации. В поле AuthUserFile указывается полный путь к файлу с паролем.
Сам файл .htpasswd создается с помощью команды: htpasswd -c /var/.htpasswd rusua
— где параметр -с задается только если надо создать новый файл,а не дополнить существующий.Далее указывается путь и имя файла /var/.htpasswd и в конце имя будущего пользователя rusua например )) Затем попросят два раза ввести пароль и всё.Файл с паролем готов.
Для примера:
— Защищаем столь популярный PhpMyAdmin.
Открываем в редакторе файл /etc/apache2/conf.d/phpmyadmin.conf
# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_value include_path .
</IfModule>
AuthType Basic
AuthName «Not so fast!»
AuthUserFile /var/.htpasswd
Require valid-user
</Directory>
# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName «phpMyAdmin Setup»
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</Directory>
# Disallow web access to directories that don’t need it
<Directory /usr/share/phpmyadmin/libraries>
Order Deny,Allow
Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Order Deny,Allow
Deny from All
</Directory>
Красным выделено дополнение к стандартному конфигу. Как видите авторизация прописывается внутри тегов <Document> </Document>.
— Пример защиты страницы столь же популярной Munin:
Открываем в редакторе /var/www/munin/.htaccess (или создаем если нет) и вписываем:
AuthType Basic
AuthName «Munin Login»
AuthUserFile «/var/.htpasswd»
Require valid-user
Тут просто в файл добавили строки авторизации. Тег <Document> </Document> тут не нужен так как файл .htaccess может принадлежать и воздейстовать только на тут папку,в которой лежит.