Защищаем паролем директорию (папку) на сервере (хостинге)

Если возникла необходимость создать защищенную зону на сайте (сделать вход по логину и паролю), это можно решить буквально за 5 минут. И для этого не понадобятся сложные скрипты, потому что серверные технологии предоставляют нам возможность защитить нужные директории паролем, поместив в эти директории два служебных документа.

Для того, чтобы закрыть паролем определенную директорию своего сайта, нам понадобится создать два документа: .htaccess и .htpasswd

Содержимое документа .htaccess:

AuthName "Halt! Ausweis!"
AuthType Basic
AuthUserFile /polny/put/www/mysyte.ru/admin/.htpasswd
require valid-user

В строке AuthName в кавычках можно написать что угодно — эта информация отобразится в окне авторизации, когда вы или кто-то другой попытается войти в защищенную зону. Только сразу предупреждаю: эта информация отображается только в Мозилле и только латиницей. Если захотите туда вставить что-либо на кириллице, то увидите кракозябры вместо нормального текста.

Хром и Опера эту информацию не отображают, поэтому можете не напрягать свою фантазию по поводу, что здесь вписать.

Далее нас интересует третья строка. Здесь нужно прописать абсолютный путь к файлу, в котором будет храниться зашифрованный пароль и логин для входа.

Содержимое документа .htpasswd:

admin:$apr1$u4jt7dvi$aZ8zmmwOnBQ

Как видите, здесь содержится всего лишь одна строка, в которой на первом месте логин и через двоеточие указан пароль в зашифрованном виде. Логин можете указать какой вам угодно (только латиницей). А вот просто вставить пароль в этот документ нельзя. Его нужно зашифровать.

Для этого проще всего воспользоваться онлайн сервисами для шифрования паролей. Например, вот здесь https://truemisha.ru/tools/htpasswd-generator . Вообще, у автора данного скрипта, Миши Рудастых, есть много полезностей для веб мастеров.

Как узнать полный путь к файлу на сервере.

Итак, вы узнали, каким образом можно закрыть паролем определенную директорию вашего сайта паролем и поспешили создать выше описанные документы. Загрузили их в эту директорию и торопитесь увидеть результат своей работы.

И вот тут часто новичка поджидает неудача. Вместо того, чтобы впустить вас после ввода логина и пароля в закрытую директорию, сервер выдает ошибку.

А все дело в том, что неверно или не полностью прописан путь к файлу .htpasswd в документе .htaccess

Казалось бы, все очень просто: путь к файлу можно увидеть в фтп клиенте, которым вы пользуетесь для загрузки файлов на свой хостинг. Однако это не так: фтп клиент отображает путь к файлу не полностью.

Для того, чтобы узнать полный путь к нужному файлу, можно воспользоваться простым php скриптом:

<?php
echo 'Document root: '.$_SERVER['DOCUMENT_ROOT'].'<br>';
echo 'Полный путь к скрипту и его имя: '.$_SERVER['SCRIPT_FILENAME'].'<br>';
echo 'Имя скрипта: '.$_SERVER['SCRIPT_NAME'];
?>

Его нужно поместить в файл с расширением .php и назвать его как вам угодно, например, test.php и загрузить в ту директорию, в которой находится файл, путь к которому нужно узнать.

После этого в поисковой строке вводите адрес своего сайта http://your-site.com/papka/test.php Имеется в виду папка (директория), в которую вы загрузили файл со скриптом. После обращения по этому адресу в окне браузера отобразится нужная информация. Вот эти данные из строки «Полный путь к скрипту и его имя:» вставляете в .htaccess в третьей строке, заменив в ней имя файла .htpasswd

Да, на всякий случай напоминаю: данные файлы должны быть в кодировке utf-8 без BOM

Оцените статью
Добавить комментарий