Как закрыть сайт паролем с помощью htaccess


Бывают ситуации, когда сделанный вами сайт не должен быть публичным, а используется как некий сервис для ограниченного круга лиц. Можно, конечно, нагородить аутентификацию через PHP, но есть почти элементарный способ – закрыть папку на сайте средствами Apache. Например, с помощью файлов .htaccess и .htpasswd. Вот об этом мы сейчас и поговорим.

Создаём файл .htpasswd с паролями

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

htpasswd -c .htpasswd admin

Ключ указывает, что необходимо создать новый файл с паролями. .htpasswd - имя генерируемого файла. admin – логин пользователя, которому будет разрешен доступ в закрытую часть сайта. После запуска утилиты со всеми нужными параметрами, появится запрос на ввод пароля и его повтор. Если файл .htaccess у вас уже создан, и вы хотите добавить в него нового пользователя, просто запустите утилиту, указав файл с паролями без ключа –c.

Создаваемый файл является текстовым и содержит логин пользователя и хеш-пароля, которые, разделены двоеточием. По умолчания, алгоритм хеширования – DES. Но его можно сменить и использовать алгоритм MD5 с ключом –m, но лучший вариант использование алгоритма SHA(ключ -s).

Защита сайта с помощью .htaccess

Итак, файл создан, затем добавляем к корневую директорию сайт файл .htaccess или дописываем в уже существующий следующие строки:


# Закрываем доступ к файлу .htaccess
Order allow,deny
Deny from all
Satisfy All


# Указываем место положение файла .htpasswd, включаем аутентификация
AuthUserFile /etc/apache2/passwd/.htpasswd
AuthName "Password Protected Area"
AuthType Basic
Require valid-user

Параметр AuthUserFile указывает на абсолютный путь к файлу .htpasswd. По неизвестной мне причине, во многих мануалах которые я видел, файл паролей зачем-то хранят в домашней директории пользователя. Я бы не советовал хранить этот файл в домашней директории, а тем более в корневой директории сайта.

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

Также хотелось бы обратить ваше внимание, что неплохо было бы закрыть сайт от индексации поисковыми системами. Для этого в корневой директории сайт создаём файл robots.txt со следующим содержанием:


User-agent: *
Disallow: /

На этом я думаю можно, и закончить этот пост. Если у Вас есть какие-то ещё вопросы по теме, жду их в комментариях.

Добавил: admin
Дата добавления: 21-03-2015

Комментарии: