Закрытие доступа к разделам сайта при помощи HTTP-авторизации
20 марта 2019
154
apache
htaccess

Предположим, у нас есть сайт mynewsite.ru, и на этом сайте есть каталог privatedir. В каталоге privatedir мы бы хотели разместить файлы, которые должны быть доступны не всем, а только тем, у кого есть логин и пароль.

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

Текущая структура сайта сейчас выглядит так:

├── mynewsite.ru
│   ├── cgi-bin
│   ├── log -> /var/log/apache2/user-logs/mynewsite.ru
│   └── www
│       └── privatedir

Настройка HTTP-авторизации

Сначала подключитесь к серверу по SSH.

Далее перейдите в каталог с сайтом. В нашем случае это /home/newphp/mynewsite.ru/www/privatedir

Например:

cd /home/newphp/mynewsite.ru/www/privatedir

Создайте файл .htaccess:

nano .htaccess

В открывшемся редакторе nano вставьте следующий текст:

AuthType Basic
AuthName "Restricted Content"
AuthUserFile /home/newphp/mynewsite.ru/www/privatedir/.htpasswd
Require valid-user

Вместо /home/newphp/mynewsite.ru/www/privatedir/.htpasswd укажите путь на вашем сервере.

Сохраните содержимое нажав на клавиатуре "CTRL + O", и далее Enter.

После этого выполните в консоли команду

htpasswd -c .htpasswd user

Укажите желаемый пароль и нажмите Enter. Введите пароль еще раз и вновь нажмите Enter.

Теперь осталось проверить все ли работает правильно. Для этого откройте каталог в браузере. В нашем примере это была бы ссылка https://mynewsite.ru/privatedir

Готово!

Рекомендуемые статьи:

Мы используем файлы cookie для предоставления наших услуг, а также для аналитики и маркетинга. Продолжая просматривать наш веб-сайт, вы соглашаетесь на использование нами файлов cookie.
ОК