Защитить папку/файл паролем .htaccess

Когда надо закрыть папку паролем или запаролить целый сайт. В нужной папке или в корне сайта создаём файл .htaccess, внутри пишем следующий код:

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /var/www/my_site/public_html/site.ru/.htpasswd
Require valid-user 5555
<Files .htpasswd>
deny from all # запретим доступ из браузера к .htpasswd
</Files>

Если нужно сделать доступ по паролю только к конкретному файлу:

<Files private_file.zip>
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /var/www/my_site/public_html/site.ru/.htpasswd
Require valid-user 5555
<Files .htpasswd>
deny from all # запретим доступ из браузера к .htpasswd
</Files>

Узнать полный путь к директории для .htpasswd можно с помощью простого PHP-скрипта:

<?php echo dirname(__FILE__); ?>

Создаём ещё один файл с расширением .htpasswd по указанному в .htaccess пути, естественно путь у вас будет свой. Внутри этого файла нужно поместить имя и зашифрованный пароль. Для этого можно воспользоваться сервисом создания хеша пароля. Содержимое файла получится примерно таким:

user_name:$2a$12$dxvjM17DYAZh4I6pZ4I.tOIAN7qsCn0xUiHpAHtkykcsFINKrIIr6

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

Из PHP-скрипта можно отследить авторизированного пользователя с помощью переменных массива $_SERVER:

echo $_SERVER['PHP_AUTH_USER'];
echo $_SERVER['PHP_AUTH_PW'];

Если переменные пустые, то можно вывести форму входа::

header('WWW-Authenticate: Basic realm="Authorization"');
header('HTTP/1.0 401 Unauthorized');

Copyright © computerlessons.mega8.ru, 2007 - 2024. Все права защищены.

Информация