Защита админки и сайта при помощи дополнительной авторизации (.htaccess + .htpasswd)

Когда-то я уже писал пост о том, как заблокировать админку сайта по IP адресу. Способ конечно великолепен, если ваш IP — статичный и работаете над сайтом вы только в одном месте (скажем только дома или только в офисе).

Лично я, мало того, что часто переезжаю, так и ко всему прочему могу поколдовать над сайтом в макдаке или мне может понадобится зайти в админку, когда я на улице или в путешествии. Короче говоря, способ блокировки по IP мне не подходит.

Но что тогда делать? Ведь хочется как-то ещё защитить админку. Да так, чтобы вся директория /wp-admin была недоступна для посторонних.

Мне представляется хорошим вариантом поставить на сайте дополнительную авторизацию, используя связку .htaccess + .htpasswd.

Что ещё более удобно, вы можете применять эту блокировку не только к админке, но и ко всему сайту, например, если ваш сайт находится на стадии тестирования и вы никому не хотите его показывать раньше времени. Вот как это будет выглядеть (для Google Chrome, в разных браузерах по-разному):

защита сайта при помощи htpasswd
Всплывающее окно дополнительной авторизации на сайте.

Весь процесс будет состоять из двух шагов. Приступим.

.htaccess

В первую очередь создаём файл .htaccess в той директории сайта, которую хотим защитить паролем. Так как речь шла об админке WordPress, то создаем файл в папке /wp-admin.

AuthType Basic
#название аутентификации
AuthName "Protected Area"
#путь к файлу с пользователями и паролями .htpasswd
AuthUserFile /vol5/home/truemisha/truemisha.ru/public_html/wp-admin/.htpasswd
require valid-user
AuthName
Название авторизации. Сообщение будет отображаться в окошке ввода логина и пароля. Кроме того, для того, чтобы сохраненные пароли в браузерах сбросились, вы можете просто поменять это сообщение.
AuthUserFile
Абсолютный путь на сервере к файлу с логинами и паролями (как раз .htpasswd). Для того, чтобы узнать его, используйте PHP функцию getcwd() (Get Current Working Directory).

.htpasswd

Файл с пользователями и паролями вида пользователь:пароль. Пароль должен быть представлен в зашифрованном виде.

Пример:

admin:$apr1$gidPSkjR$qvsL5fMNunK2T17DKSxtR/

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Комментарии — 36

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал