Базовая авторизация сайта через .htaccess

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

Для закрытия доступа к директории, в неё нужно поместить два файла – .htaccess и .htpasswd.

Содержимое .htaccess

В .htaccess прописываем:

AuthType Basic
AuthName "Authorization"
AuthUserFile /путь_до_директории/.htpasswd
Require valid-user

Проставляем свой путь до директории .htaccess.

Не забываем проверить прямой доступ к самим файлам .htaccess и .htpasswd из браузера — при необходимости закрываем к ним доступ:

<FilesMatch ".(htaccess|htpasswd)$">
Order Allow,Deny
Deny from all
</FilesMatch>

Содержимое .htpasswd

В файле хранится пара логина и хеша пароля. Хеш можно сгенерировать c помощью PHP скрипта, либо воспользоваться онлайн-сервисами.

Apache поддерживает разные алгоритмы генерации пароля:

  • bcrypt
  • MD5 (APR)
  • SHA1
  • Argon2

Если у вас версия apache выше 2.4, то лучше использовать алгоритм bcrypt — он считается наиболее безопасным.

Просто вбиваем в гугл / яндекс что-то вроде «htpasswd generator online».

Генератор хэша на сайте https://hostingcanada.org/htpasswd-generator/

Сгенерированную строку пары логин-хэш вставляем в .htpasswd

Готово. Вы великолепны!