Защита директории сайта паролем через .htaccess - UnixHost Blog

Защита директории сайта паролем через .htaccess - UnixHost Blog

Очень часто, во время разработки сайта либо веб сервиса появляется необходимость запретить доступ к конкретной странице либо конкретному разделу сайта (директории). Один из вариантов это сделать — использовать htpasswd.

В данном примере мы рассмотрим блокировку доступа к директории test которая находится в корне сайта.

Первое, что нам нужно будет сделать — создать файл в котором в зашифрованном виде будут находится имена пользователей и пароли. Именно с этими данными будет производится проверка при вводе имени пользователей и пароля при получении доступа к закрытому сайту либо директории.

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

Разберем подробнее каждый ключ

-с — отвечает за создание нового файла -B — в качестве шифрования использует алгоритм bcrypt /var/www/passwd/.htpasswd — путь и имя создаваемого файла username — имя пользователя

После выполнения данной команды вам необходимо будет ввести пароль который будет использоваться для данного пользователя.

Если же вы захотите добавить новых пользователей для доступа к закрытой части сайта, то вам необходимо будет выполнить следующую команду:

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

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

Для того чтобы наша «блокировка» работала нам необходимо изменить значение у переменной AllowOverride с None на All . Для этого открываем файл конфигурации вашего вебсервера , обычно данный файл находится по адресу /etc/apache2/apache2.conf либо /etc/apache2/conf.d/ либо /etc/apache2/sites-enabled/ в файле который отвечает за подключение вашего доменного имени ищем значение AllowOverride и меняем его на All .

Мой файл выглядит следующим образом, ваш может отличаться.

После внесения изменений перегружаем вебсервер

После создания файла htpasswd нам необходимо будет создать либо отредактировать уже имеющийся файл .htaccess .

Корневая директория сайта у меня находится по адресу /var/www/html , в данной директории находится папка test и в ней php файл который выводит информацию о версии php. Для того чтобы ограничить доступ к в папке test создадим в ней файл .htaccess в который добавим следующие строки :

В переменную AuthUserFile указываем путь к нашему файлу который мы создавали.

Теперь если мы перейдем по адресу сайта sitename.com/test то нас попросит ввести логин и пароль.

После ввода логина и пароль мы увидим нашу страницу.

В случаи если вам нужно ограничить доступ лишь к одной странице (файлу) для этого нужно указать имя файла для доступу к которому будет запрашиваться имя пользователя и пароль

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

Recommended articles