
Как создать собственный URL-адрес для входа в WordPress
По умолчанию после каждой установки WordPress есть три основных URL-адреса для входа в админку: {домен}/wp-admin.php
, или {домен}/wp-login.php
, или {домен}/wp-admin/
. Под этим подразумевается условие, что система установлена в корневую папку, и там размещается основной файл функционала входа в панель администрирования — wp-login.php
. Эти URL-адреса (и, соответственно, этот файл) очень важны, что представляет собой очень вескую причину, когда возникнет желание их изменить. Хотя бы из соображений безопасности.
В сегодняшнем практическом уроке мы рассмотрим основные моменты по реализации данной задачи, и я попробую максимально подробно показать вам, как создать собственный URL для входа в Консоль (админку) сайта на CMS WordPress.
Зачем изменять URL-адрес входа в админ WordPress?
Открытость страницы входа в Консоль может повлечь за собой много проблем с безопасностью, особенно учитывая популярность движка ВордПресс. Поэтому взлом такого сайта будет «лакомым кусочком». Например, через хакерские атаки методом грубой силы (brute force). Добавьте сюда повсеместное использование слабых паролей, и хакерам взлом не доставит много хлопот. И если вдобавок администратор сайта использует банальный логин «admin».
Кстати, рекомендую ознакомиться со способами борьбы против атак подобного типа.
И рекомендую позаботиться о защите страницы входа в систему WordPress, в частности: использовать надежный пароль, ограничить количество попыток ввода пароля в форме (отсечь возможность угадывания пароля), заблокировать административную область WordPress по IP-адресу (например, разрешить только свой IP-адрес), и использовать плагины, внедряющие использование 2FA-аутентификации на странице логина, и т.д.
Как изменить URL-адрес Консоли в WordPress без плагина
В сети много подобных мануалов, и практически все они рекомендуют изменять URL входа в панель администрирования сайта на WordPress только с помощью соответствующих плагинов. Таких инструкций, да и плагинов, есть немало. Но целью данной статьи является ознакомление вас именно со способом смены ссылки на Консоль без использования каких-либо плагинов. Чтобы вы знали и могли это сделать вручную. Ведь потенциально вы пытаетесь упростить жизнь своей команде/клиентам и усложнить ее для хакеров.
ВНИМАНИЕ! Данные действия предполагают, что вы опытный пользователь не только CMS ВордПресс, но и языка программирования PHP. Поскольку придется так или иначе вмешиваться в core файлы WP (хотя это и осуждается официальными рекомендациями).
Чтобы вручную изменить URL-адрес входа на сайт, воспользуйтесь копией файла wp-login.php
. Подключитесь к своему сайту на сервере через FTP и перейдите в корневой каталог WordPress, — там вам нужно найти файл wp-login.php
и сделать локальную копию (создать бекап) на свой компьютер.
Откройте копию этого файла с помощью текстового редактора, например Notepad++. Функцией поиска в текстовом редакторе найдите строки, в которой указана ссылка site_url
с параметром wp-login.php
. В общем, это используется в нескольких основных формах:
- форма регистрации на сайте:
name="registerform"
- форма входа (логина) на сайт:
name="loginform"
- форма подтверждения email админа:
name="admin-email-confirm-form"
- форма «потерянного пароля»:
name="lostpasswordform"
- форма сброса пароля:
name="resetpassform"
В этих строках вы можете указать свой пользовательский URL для входа в ваш сайт. Например, вы можете заменить эти строки на new-access-address.php
:
После замены сохраните файл и закройте его. После этого переименуйте его в соответствии с новым URL-адресом (выбранным на предыдущем шаге). В моем примере файл будет называться new-access-address.php
. Если вы возьмете этот адрес и добавите его к своему домену, у вас будет кастомный URL админки, который будет выглядеть примерно следующим образом:
{домен}/new-access-address.php
Если вам нужно, чтобы система при попытке входа в админку перенаправляла на новый адрес, сделайте следующее. Откройте активную тему сайта и отредактируйте functions.php, добавив в него следующий «хук» WordPress:
add_filter('login_url', 'sebweo_custom_wplogin_url', 10, 3); function sebweo_custom_wplogin_url($login_url) { $login_url = site_url('new-access-address.php', 'login'); return $login_url; }
Сохраните изменения в functions.php
и попробуйте получить доступ к новому URL-адресу входа (который вы только что настроили). Все должно работать так же хорошо, как и раньше. И даже при попытке зайти по старому адресу типа /wp-admin/
вас перебросит на новую страницу.
После этого можно удалить исходный файл wp-login.php
(но сделав предварительно его бекап, — на всякий случай).
Дополнительный трюк с формой логина на сайт
Если вам нужно добавить в какое-либо другое место сайта форму с логином (авторизацией), для этого достаточно разместить в соответствующем php-шаблоне следующую функцию:
<?php wp_login_form(); ?>
Функционал этой функции и соответственно самой формы входа генерируется кодом данной функции в файле core системы WordPress по адресу {домен}/wp-includes/general-template.php
.
Теоретически, вы можете изменить адрес входа напрямую в этом файле, но каждое последующее обновление движка «сотрет» ваши правки.
Вместо вывода
Хотя сама идея вмешательства в системные элементы WordPress может показаться сложной, но в данном уроке вы увидели, что это не так уж и проблематично (лишь при условии, что вы опытный пользователь и полностью осознаете свои действия).
Сегодня я показал вам как можно изменить URL входа в панель администрирования (Консоль, админка) сайта на CMS WordPress. Заметьте, что после каждого обновления движка существует определенная вероятность, что ваши правки будут «затерты» и вам придется делать все заново (по крайней мере, если вы изменяете системные файлы, а не файлы в текущей теме). Этот недостаток можно «победить» созданием новой страницы для входа и использовать хук в файле functions.php
текущей темы.
Спасибо за внимание!