Стандартная страница входа в WordPress обычно открывается по адресу /wp-login.php, а админка — по /wp-admin/. Поменять адрес можно плагином или собственным кодом. Для большинства сайтов безопаснее плагин: он меняет адрес входа и закрывает доступ к стандартному URL. Кодовый вариант тоже возможен, но требует работающих правил ЧПУ и внимательной проверки.
Смена адреса затрудняет автоматический перебор паролей, который обращается к стандартной странице, но не заменяет надёжный пароль и другие меры защиты. Если злоумышленник узнает новый адрес, сама по себе его нестандартность не защитит учётную запись.
Самый простой способ — установить плагин
Для этой задачи часто используют бесплатный плагин WPS Hide Login. Он не переносит и не переименовывает файл WordPress: плагин задаёт другой адрес страницы входа и ограничивает обращение к стандартному URL.
- Сделайте резервную копию сайта, затем в админке откройте Плагины → Добавить новый.
- Найдите WPS Hide Login, установите и активируйте плагин.
- Перейдите в Настройки → Общие. Внизу страницы появятся настройки WPS Hide Login.
- В поле адреса входа укажите короткий уникальный путь, например
my-entry. Не используйте в нём пробелы. Сохраните настройки.
После сохранения новый адрес будет выглядеть примерно так: https://example.com/my-entry/. Запишите его в менеджер паролей или сохраните в другом надёжном месте: после активации старый адрес для входа перестанет работать как обычная страница авторизации. Если в настройках есть поле для адреса перенаправления, оно определяет, куда отправлять посетителя, открывшего стандартный URL. Оставьте значение по умолчанию, если нет причины менять его.
Учитывайте, что поведение плагина и доступные поля могут различаться между версиями. Если сайт работает в мультисайтовой сети, проверьте совместимость с её настройками до включения плагина для всей сети.
Как проверить, что новый адрес работает
Не выходите из текущей админ-сессии, пока не проверите вход. Откройте новое приватное окно браузера и перейдите по новому адресу. Страница авторизации должна загрузиться, а попытка входа с действующими учётными данными — вернуть вас в админку. Затем проверьте стандартный /wp-login.php: он не должен показывать обычную форму входа.
После проверки выйдите из системы и ещё раз войдите по новому адресу. Так вы убедитесь, что адрес работает не только в уже открытой сессии. Если перед сайтом стоит CDN или плагин кеширования, исключите страницу входа и связанные с ней запросы из кеша: закешированная форма или перенаправление могут мешать авторизации.
Изменение адреса с помощью кода
Если вы не хотите устанавливать отдельный плагин, можно настроить собственный маршрут. Пример ниже направляет адрес /my-login/ на штатную страницу входа и возвращает 404 при прямом обращении к wp-login.php. Код лучше поместить в отдельный файл MU-плагина, а не в functions.php: MU-плагин не отключится при смене темы.
Перед изменениями сделайте резервную копию файлов и убедитесь, что можете открыть сайт через панель хостинга или FTP. Ошибка в коде или правилах маршрутизации может лишить доступа к входу. Создайте каталог wp-content/mu-plugins, если его ещё нет, и файл wp-content/mu-plugins/custom-login-url.php со следующим содержимым:
<?php
/**
* Plugin Name: Custom Login URL
*/
add_action( 'init', function () {
add_rewrite_rule( '^my-login/?$', 'index.php?custom_login=1', 'top' );
} );
add_filter( 'query_vars', function ( $vars ) {
$vars[] = 'custom_login';
return $vars;
} );
add_action( 'template_redirect', function () {
if ( (int) get_query_var( 'custom_login' ) !== 1 ) {
return;
}
require ABSPATH . 'wp-login.php';
exit;
} );
add_filter( 'site_url', function ( $url, $path, $scheme, $blog_id ) {
if ( is_string( $path ) && strpos( $path, 'wp-login.php' ) === 0 ) {
$url = preg_replace( '~wp-login\.php(?=([?#]|$))~', 'my-login', $url, 1 );
}
return $url;
}, 10, 4 );
add_action( 'login_init', function () {
if ( (int) get_query_var( 'custom_login' ) === 1 ) {
return;
}
status_header( 404 );
nocache_headers();
exit;
} );
В этом примере my-login — выбранный адрес. Если хотите другой, замените его в правиле маршрутизации и в фильтре site_url на один и тот же путь. Не добавляйте начальный слеш в строку фильтра.
После установки кода войдите в админку и откройте Настройки → Постоянные ссылки, затем нажмите Сохранить изменения. Пересохранение обновляет правила маршрутизации WordPress; вызывать сброс правил при каждом запросе не нужно. Это решение рассчитано на сайт, где работают ЧПУ и стандартная маршрутизация WordPress. Если постоянные ссылки отключены, сервер не передаёт запросы на обработку WordPress или используются особые правила веб-сервера, маршрут может не заработать. Для мультисайта и нестандартной конфигурации сначала проверьте схему на тестовом сайте.
Проверьте новый путь в приватном окне, попробуйте войти и выйти, а затем откройте стандартный /wp-login.php. Если новый адрес возвращает 404, войдите в панель хостинга или временно переименуйте файл MU-плагина, чтобы отключить этот код, затем проверьте настройки ЧПУ и ошибки в файле.
Почему не стоит ограничиваться заменой ссылки
Фильтр login_url может изменить адрес, который WordPress показывает в ссылках для входа, но сам по себе он не закрывает /wp-login.php и не создаёт новый маршрут. Поэтому одной замены ссылки недостаточно, если задача — скрыть стандартный URL. Не переименовывайте файл wp-login.php вручную: обновление WordPress вернёт штатный файл, а другие компоненты сайта могут продолжить обращаться к стандартному пути.
Если нужна простая настройка без сопровождения собственного кода, выбирайте плагин. Кодовый вариант подходит тем, кто готов самостоятельно отвечать за правила маршрутизации и восстановление доступа. В обоих случаях сохраните новый адрес отдельно и сначала проверяйте изменения в приватном окне, не закрывая активную сессию администратора.