Если возникла необходимость создать защищенную зону на сайте (сделать вход по логину и паролю), это можно решить буквально за 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