Веб-сервер Apache (.htaccess, .htpasswd)

Что такое web-сервер?
Когда Вы хотите открыть в своем браузере какой-либо сайт, Вы набираете в адресной строке его адрес. Браузер обращается к серверу и, образно говоря, говорит ему: "Выдай-ка мне вот это сайт!". Web-сервер - это та программа, которая этот запрос принимает и выполняет, отправляя Вам запрошенный сайт.
Исторически сложилось так, что самым популярным web-сервером в интернете стал web-сервер Apache. Существует много различных версий этого сервера, переделанных под разные задачи. Мы используем Russian Apache, т.е. Apache, умеющий работать с русскими кодировками.

Как можно управлять Apache?
Управление Apache осуществляется путем добавления в файл .htaccess специальных директив. По сути дела, инструкций, говорящих web-серверу как поступать в той или иной ситуации. Файл .htaccess - это обычный текстовый файл, который можно либо создать непосредственно на сервере, используя, к примеру, текстовый редактор vi, либо создать у себя на компьютере и закачать на сервер по протоколу FTP.
Директивы файла .htaccess действуют для каталога, в котором этот файл лежит, и его подкаталогов, если в них нет своих файлов .htaccess. Директивы в файле .htaccess, лежащем в подкаталоге, замещают (переопределяют) собой аналогичные директивы в вышележащем .htaccess. Т.е. директивы, которые были определены в каталоге и не были переопределены в подкаталоге, продолжают действовать на все нижележащие подкаталоги.

Обычно используется один файл .htaccess для всего сайта. В данном случае он размещается в директорию public_html и действует на корневой каталог сайта и все его подкаталоги.

Какие директивы можно использовать?
На нашем хостинге можно использовать все директивы Apache, применимые к файлу .htaccess. Примеры использования .htaccess приведены в разделе "FAQ по файлу .htaccess"

Как можно поставить пароль на директорию?
Для того, чтобы при обращении к защищенной директории web-сервер Apache спрашивал пароль, нужно в эту директорию поместить файл .htaccess, в котором прописать следующие директивы:
AuthName ProtectedZone
Вместо ProtectedZone можно написать все, что угодно. Это название защищенной области, оно будет показываться в браузере при запросе пароля, являясь по сути дела подсказкой пользователю. Если Вы хотите использовать русские буквы или же более одного слова, необходимо использовать кавычки.
Пример: AuthName "Введите пароль для входа"

AuthType Basic
Это метод шифрования пароля. Практически всегда используется именно данный вид шифрования.
Пример: AuthType Basic

AuthUserFile /полный_путь_к_файлу/.htpasswd
Это путь к файлу, в котором будут храниться логины и пароли. Он может иметь практически любое имя и располагаться в любом каталоге, главное, чтобы web-сервер мог его прочитать, что требует установки соответствующих прав доступа к этому файлу (на нашем сервере - 644). Однако, традиционно такие файлы называют .htpasswd.
Пример: AuthUserFile /home/test/www/site1/public_html/.htpasswd

require valid-user
Эта строка говорит о том, что доступ в защищенную директорию будет разрешен всем пользователям, чьи логины и пароли есть в файле .htpasswd. Если нужно дать доступ конкретным пользователям, то тогда указывается require user логины_пользователей_через_пробел.
Пример: require user vasya kolya petya
Пример: require valid-user

Как редактировать файл .htpasswd?
Файл паролей .htpasswd - это обычный текстовой файл. Каждый пользователь описан в нем одной строкой вида логин:шифрованый_пароль. Для шифрования паролей используется специальная программа htpasswd. Обратите внимание, в файл нельзя просто вручную записать пароль, пароль обязательно должен быть зашифрован программой htpasswd.
Если файл .htpasswd еще не существует, программа htpasswd должна быть запущена с ключом -c:

htpasswd -c /полный_путь_к_файлу/.htpasswd логин_пользователя
Пример: htpasswd -c /home/test/www/site1/public_html/.htpasswd vasya

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

Как создать файл .htpasswd если тарифный план не предусматривает доступа по SSH?
Если тарифный план не предусматривает доступ по SSH (доступ к командной строке сервера), то для создания файла .htpasswd можно воспользоваться специальной windows-программой. Для этого, нужно скачать дистрибутив, распаковать его и запустить программу passwd.exe. После этого в окне по закладке "Single Password" с помощью кнопки "Browse" задать имя файла (обычно это .htpasswd), а в верхней части окна ввести имя пользователя, пароль и нажать кнопку "Encode and Save". После этого полученный файл необходимо закачать по протоколу FTP в нужную директорию на нашем сервере.

Где я могу получить дополнительную информацию?
Для получения дополнительной информации о настройках файла .htaccess и о web-сервере Apache в целом Вы можете воспользоваться официальным сайтом данного программного продукта - Apache.org. На сайте дана подробная справочная информация и приведены примеры работы с данным web-сервером.