首先,为何要隐藏正常的后台登陆入口?通过最近一段时间的使用发现,每天都有大量的扫描暴力破解,不断的尝试后台弱口令登陆,虽然对自己平时影响不大,但这是安全问题需要重视。
优先用WPS Hide Login插件(最简单、最稳);也可以用functions.php 代码或服务器规则(.htaccess/Nginx)隐藏 / 改后台地址,核心是让/wp-admin、/wp-login.php失效,只留你自定义的入口。
一、插件法(推荐,新手首选)
1. WPS Hide Login(最流行)

- 后台 → 插件 → 安装插件 → 搜索 WPS Hide Login → 安装并激活。
- 设置 →右边往下拉(新版已经整合在设置里) WPS Hide Login:
- Login URL:填自定义路径,如
my-secret-admin(别用admin/login这类常见词)。 - Redirect URL:非法访问时跳转(如首页或 404)。
- Login URL:填自定义路径,如
- 保存后,新地址:
你的域名/my-secret-admin;原/wp-admin、/wp-login.php直接 404。 - 急救:忘地址时,FTP 进
wp-content/plugins/,把wps-hide-login改名(如加_bak),即可恢复默认登录。
2. 备选轻量插件
- Hide WP Admin Login:功能同上,设置更简单。
- Admin Login URL Change:只改 slug,轻量无冗余。
二、代码法(不用插件,适合懂基础 PHP)
方案 A:functions.php 拦截(最简)
- 后台 → 外观 → 主题文件编辑器 → 选
functions.php(用子主题,避免更新覆盖)。 - 末尾添加:
// 隐藏默认登录,自定义参数
add_action('login_enqueue_scripts','login_protect');
function login_protect(){
// 仅允许 ?key=你的密钥 访问
if($_GET['key'] !== 'my-super-secret-123'){
wp_redirect(home_url()); // 跳首页
exit;
}
}
- 新登录地址:
域名/wp-login.php?key=my-super-secret-123;直接访问/wp-login.php会跳转。
方案 B:functions.php 改路由(更彻底)
// 自定义登录路由
add_action('init', 'custom_login_route');
function custom_login_route() {
$new_slug = 'hidden-login-2026'; // 自定义路径
global $wp;
$wp->add_query_var('custom_login');
add_rewrite_rule('^'.$new_slug.'/?$','index.php?custom_login=1','top');
}
// 拦截默认登录
add_action('template_redirect', 'block_default_login');
function block_default_login() {
if (is_admin() && !current_user_can('read')) {
wp_redirect(home_url());
exit;
}
if ($_GET['custom_login'] == 1) {
include(ABSPATH . 'wp-login.php');
exit;
}
}
保存后,固定链接 → 保存(刷新规则);新地址:域名/hidden-login-2026。
三、服务器配置法(适合高阶用户)
Apache(.htaccess)
- 编辑网站根目录
.htaccess(开启显示隐藏文件)。 - 在
# BEGIN WordPress前添加:
apache
# 隐藏默认登录
<IfModule mod_rewrite.c>
RewriteEngine On
# 拦截 wp-login.php
RewriteCond %{THE_REQUEST} ^GET.*wp-login\.php [NC]
RewriteRule ^(.*)$ - [R=404,L]
# 拦截 wp-admin(允许admin-ajax.php)
RewriteCond %{REQUEST_URI} ^/wp-admin [NC]
RewriteCond %{REQUEST_URI} !^/wp-admin/admin-ajax\.php$ [NC]
RewriteRule ^(.*)$ - [R=404,L]
# 自定义登录路由:域名/my-admin
RewriteRule ^my-admin$ wp-login.php [L]
</IfModule>
- 保存后,新地址:
域名/my-admin。
Nginx
在网站配置的server块内添加:
# 拦截默认登录
location ~* ^/(wp-login\.php|wp-admin) {
deny all;
return 404;
}
# 自定义登录
location /my-secret-login {
try_files $uri $uri/ /wp-login.php;
}
重启 Nginx 生效。
四、重要注意事项
- 备份优先:改代码 / 配置前,备份
functions.php、.htaccess和数据库。 - 子主题必用:改
functions.php务必用子主题,否则主题更新会覆盖代码。 - 记住新地址:改完立即测试并加入书签;插件法忘地址可删插件目录恢复。
- 安全强化:搭配强密码、限制登录尝试(如 Limit Login Attempts 插件)、双因素认证,效果更好。
五、方案对比
- 插件法:⭐⭐⭐⭐⭐ 最简单、零代码、可逆,新手首选。
- functions.php:⭐⭐⭐⭐ 轻量无插件,适合懂 PHP 用户。
- 服务器规则:⭐⭐⭐⭐ 最彻底,适合高阶用户,需服务器权限。