Как ограничить доступ к wp-admin в WordPress по IP или логину

Ограничить доступ к wp-admin можно на двух уровнях: сервер будет пускать в админку только с заданных IP-адресов или WordPress будет показывать панель только выбранным пользователям. Первый способ надёжнее, если у вас постоянный IP и доступна настройка веб-сервера. Второй удобен, когда IP меняется, но он не заменяет проверку прав пользователей WordPress.

Перед изменениями убедитесь, что у вас есть доступ к панели хостинга или файлам сайта. Ошибка в серверном правиле может закрыть вход в админку; при ограничении по логину опечатка в имени пользователя может лишить доступа всех администраторов.

Ограничение по IP в Apache

Если сайт работает на Apache или совместимом с его правилами веб-сервере, можно разрешить доступ к каталогу wp-admin только с определённых адресов. Пример ниже предназначен для Apache 2.4. Создайте файл .htaccess в каталоге wp-admin либо аккуратно добавьте правила в уже существующий файл, не удаляя его содержимое:

<RequireAny>
    Require ip 198.51.100.24
    Require ip 2001:db8:1234::/48
</RequireAny>

<Files admin-ajax.php>
    Require all granted
</Files>

Замените примеры адресов на свой публичный IP или нужную сеть. Адреса в примере зарезервированы для документации и не дадут доступ к вашему сайту. Несколько директив Require ip внутри RequireAny означают, что подойдёт любой из перечисленных адресов. IPv6-сеть можно указать в формате CIDR, как в примере.

Исключение для admin-ajax.php оставляет доступными AJAX-запросы, которые могут использоваться публичными страницами сайта. Без него такие запросы с адресов посетителей тоже будут блокироваться. При этом остальные файлы в wp-admin, в том числе обработчики административных действий, останутся доступны только с разрешённых IP.

Этот вариант работает только там, где сервер поддерживает директивы Apache в .htaccess. Nginx такие файлы не читает; для него правило доступа настраивают в конфигурации виртуального хоста, а на управляемом хостинге — через панель или поддержку. Не вставляйте Apache-синтаксис в конфигурацию Nginx: это не сработает и может нарушить запуск сайта.

Что учесть перед IP-ограничением

Проверьте, что разрешённый адрес не меняется после переподключения роутера или перезагрузки модема. Если провайдер выдаёт динамический IP, правило может внезапно закрыть доступ вам самим. В этом случае можно разрешить адресный диапазон, если он известен и достаточно узок, либо выбрать ограничение по логину.

Если сайт работает за CDN, прокси или балансировщиком, сервер может видеть адрес прокси, а не ваш реальный IP. Тогда обычное правило для клиентского адреса не совпадёт с тем, что получает Apache. Не подменяйте IP вручную заголовком X-Forwarded-For: ему можно доверять только при корректно настроенной цепочке прокси. Уточните у хостинга, какой адрес сервер использует для правил доступа.

Ограничение каталога wp-admin само по себе не закрывает страницу входа wp-login.php: она находится в корне WordPress. Пользователь с другого IP может увидеть форму входа, но после авторизации не сможет открыть защищённые страницы админки. Если нужно ограничить и саму страницу входа, это отдельное серверное правило. Настраивайте его только после проверки основного доступа и с возможностью быстро вернуть исходные настройки.

Ограничение по логину через MU-плагин

Если IP непостоянный, можно разрешить работу в панели конкретным аккаунтам WordPress. Для этого подойдёт небольшой MU-плагин: такие плагины загружаются автоматически и не требуют активации в админке. Создайте каталог wp-content/mu-plugins, если его ещё нет, и добавьте туда файл, например limit-admin-by-login.php.

<?php
/**
 * Plugin Name: Limit admin access by login
 */

add_action('admin_init', function () {
    if (wp_doing_ajax()) {
        return;
    }

    $allowed_logins = array('siteadmin');
    $user = wp_get_current_user();

    if (
        ! $user->exists()
        || ! in_array($user->user_login, $allowed_logins, true)
    ) {
        wp_safe_redirect(home_url('/'));
        exit;
    }
});

Замените siteadmin на точное значение поля «Логин» в профиле нужного пользователя. Чтобы разрешить нескольким людям доступ, перечислите их логины в массиве, например array('siteadmin', 'editor-login'). Проверьте написание: сравнение учитывает регистр.

Для пользователей, которых нет в списке, страницы админки будут перенаправляться на главную. Запросы к admin-ajax.php исключены, чтобы не ломать AJAX-функции сайта. Это ограничивает доступ к интерфейсу панели, но не заменяет штатную систему ролей и прав WordPress: выдавайте каждому аккаунту только те возможности, которые ему действительно нужны. Логин также не является секретом и сам по себе не защищает аккаунт от подбора пароля.

Если после установки доступ пропал, удалите файл MU-плагина через файловый менеджер или SFTP — это вернёт прежнее поведение. Не проверяйте такой код сразу на единственной доступной учётной записи без запасного способа восстановить файлы.

Как проверить настройку и выбрать подходящий способ

После настройки откройте сайт в приватном окне и проверьте вход с разрешённого и запрещённого адреса или аккаунта. Для IP-правила также убедитесь, что страницы сайта, использующие AJAX, работают как раньше. Если сервер отвечает ошибкой 500 после изменения .htaccess, восстановите предыдущую версию файла: вероятная причина — неподдерживаемая директива или ошибка синтаксиса.

Выбирайте IP-ограничение, когда админкой пользуются с постоянных адресов и вы контролируете серверную конфигурацию. Ограничение по логину подходит для меняющихся сетей и нескольких аккаунтов, но действует на уровне WordPress. В обоих случаях сохраните резервную копию изменяемого файла и оставьте себе проверенный путь восстановления доступа.

Как сделать простую регистрацию пользователей в WordPress без плагинов
02.10.2026
Как добавить собственный тип записи в WordPress
29.09.2026
Как отключить лишние скрипты и стили WordPress на отдельных страницах
13.10.2026
Как исправить ошибку 404 в WordPress: причины и рабочие способы решения
23.10.2026
Как найти и удалить битые ссылки в WordPress
16.10.2026

Заметки по WP: подробные описания устаноки, гайды по настройке, разработке плагинов и тем.