Закрываем доступ к сайту через .htaccess
Для того, чтобы ограничивать доступ к папкам/файлам при помощи файла .htaccess на web-севере Apache, его следует положить в каталог, который требуется защитить.
Защитить паролем только определенный файл:
<Files admin.php> Require valid-user Authname "Protected" Authtype Basic AuthUserFile "/var/www/domain.com/.htpasswd" </Files>
где admin.php — защищаемый паролем файл, .htpasswd — файл паролей (см. ниже).
Если необходимо защитить весь каталог сайта, создайте в этом каталоге файл .htaccess вида:
AuthType Basic AuthName "Protected" AuthUserFile "/var/www/domain.com/.htpasswd" Require valid-user
Доступ только для пользователя admin:
AuthType Basic AuthName "Protected. Only for administrator" AuthUserFile "/var/www/domain.com/.htpasswd" Require user admin
Доступ к файлам только с определенным расширением:
Require valid-user Authname "Protected" Authtype Basic AuthUserFile "/var/www/domain.com/.htpasswd" <Files *.cfg> Allow from all Satisfy any </Files>
Доступ к файлам с несколькими расширениями:
Require valid-user Authname "Protected" Authtype Basic AuthUserFile "/var/www/domain.com/.htpasswd" <FilesMatch ".(gif|bmp|tiff|swf|flv)$"> Allow from all Satisfy any </FilesMatch>
.htpasswd
Файл .htpasswd — это текстовый файл паролей, который имеет следующую структуру:
user1:password
user2:password
Создается он командой
htpasswd -c -b /var/.htpasswd USERNAME PASSWORD
где ключ -с указывает, что необходимо создать новый файл. Если вам требуется добавить нового пользователя в этот файл, ключ необходимо убрать. Ключ -b указывает на то, чтобы пароль брался с командной строки, а не запрашивался.
По возможности файл .htpasswd лучше положить в каталог, недоступный через WWW. Если это невозможно, следует запретить к нему доступ в .htaccess:
<Files .htpasswd> Deny from all </Files>