По умолчанию URL страницы входа в WordPress имеет вид your-site.ru/wp-login.php или your-site.ru/wp-admin. Это наводит злоумышленников на мысль, где искать форму авторизации, что увеличивает риск перебора паролей и атак методом brute force. Многие пользователи устанавливают плагины для смены адреса входа, но не всегда это удобно или желательно — плагины могут замедлять сайт или конфликтовать с другими расширениями. В этой статье мы подробно рассмотрим, как изменить URL страницы входа в WordPress без плагинов, используя собственные функции и настройки.
Почему важно менять URL страницы входа в WordPress
Стандартный вход в админ-панель — одна из самых уязвимых точек сайта. Злоумышленники часто запускают автоматические атаки, пытаясь подобрать логин и пароль через wp-login.php. Изменение URL страницы входа снижает количество таких атак и помогает защитить сайт от взломов.
Кроме того, смена адреса входа может быть нужна для создания уникального пользовательского опыта или интеграции с внешними системами аутентификации.
Как работает стандартный URL входа в WordPress
По умолчанию WordPress обрабатывает вход через файл wp-login.php и перенаправляет пользователей при доступе к wp-admin. Чтобы изменить URL, нам нужно перехватить запросы к этим адресам и направить их на новый адрес.
Важный момент: изменение должно быть реализовано так, чтобы не ломалась функциональность WordPress и не возникало проблем с кэшированием или переадресацией.
Реализация изменения URL входа без плагинов
Создаем функцию обработки нового URL
Предположим, мы хотим, чтобы страница входа открывалась по адресу /mysecretlogin/. Для этого добавим в файл functions.php вашей темы или в отдельный подключаемый файл следующий код:
function wphide_custom_login_url() {
$login_slug = 'mysecretlogin';
$request = $_SERVER['REQUEST_URI'];
// Разрешаем доступ к wp-login.php только для POST запросов (авторизация)
if (strpos($request, 'wp-login.php') !== false && $_SERVER['REQUEST_METHOD'] !== 'POST') {
wp_redirect(home_url('/' . $login_slug . '/'));
exit();
}
// Перехватываем запрос к нашему новому адресу и подменяем его на wp-login.php
if (strpos($request, '/' . $login_slug . '/') !== false) {
require ABSPATH . 'wp-login.php';
exit();
}
}
add_action('init', 'wphide_custom_login_url');Этот код делает две вещи: перенаправляет все GET-запросы к wp-login.php на новый адрес и подгружает страницу входа при обращении к новому URL. POST-запросы (отправка формы) к wp-login.php пропускаются, чтобы форма авторизации работала корректно.
Добавляем правило перезаписи для нового URL
Чтобы WordPress понимал запросы к /mysecretlogin/, нужно зарегистрировать правило перезаписи. Добавим следующий код в functions.php:
function wphide_add_rewrite_rule() {
add_rewrite_rule('^mysecretlogin/?$', 'wp-login.php', 'top');
}
add_action('init', 'wphide_add_rewrite_rule');После добавления этого кода необходимо обновить правила перезаписи. Для этого зайдите в админку WordPress в меню Настройки - Постоянные ссылки и просто нажмите кнопку «Сохранить изменения» без изменений.
Обработка выхода из системы
Для корректной работы выхода по новому URL добавим редирект с wp-login.php?action=logout на /mysecretlogin/?action=logout:
function wphide_logout_redirect() {
if (isset($_GET['action']) && $_GET['action'] === 'logout') {
wp_redirect(home_url('/mysecretlogin/?action=logout'));
exit();
}
}
add_action('init', 'wphide_logout_redirect');Рекомендации по безопасности после смены URL входа
1. Используйте сложные уникальные логины и пароли для всех пользователей с правами администратора.
2. Добавьте двухфакторную аутентификацию (2FA) для дополнительной защиты.
3. Ограничьте количество попыток входа — можно настроить через файл .htaccess или сторонние решения.
4. Регулярно обновляйте WordPress, темы и плагины, чтобы избежать уязвимостей.
Альтернативы: плагины для смены URL входа
Если вам не удобен ручной способ, существуют проверенные плагины, которые делают смену URL проще и безопаснее:
- WPS Hide Login — легкий и популярный плагин, который меняет URL входа без изменения файлов.
- Rename wp-login.php — позволяет переименовать страницу входа и добавить защиту от брутфорса.
- iThemes Security — комплексный плагин безопасности, в том числе с функцией смены URL входа.
Однако при использовании плагинов стоит учитывать возможные конфликты и нагрузку на сайт.
Выводы
Изменение URL страницы входа — простой и эффективный способ повысить безопасность WordPress без установки дополнительных плагинов. Важно реализовывать это аккуратно, чтобы не нарушить работу сайта. Приведенные примеры кода можно адаптировать под свои нужды, меняя адрес входа и расширяя функциональность в зависимости от задач.