一、为什么必须修改 WordPress 默认登录地址?
WordPress 默认登录路径/wp-admin和/wp-login.php是公开常识,这给网站带来三大安全隐患:
- 暴力破解风险:攻击者可直接针对默认路径发起密码撞库攻击,每天有大量 WordPress 站点因此沦陷;
- 爬虫定向扫描:专业扫描工具能自动识别 WordPress 站点并抓取默认登录页,成为攻击突破口;
- 服务器资源消耗:恶意脚本频繁请求默认登录页会占用带宽与 CPU,导致网站变慢甚至宕机。
将默认路径改为/wp-ztmao这类自定义地址,能从源头切断大部分无差别攻击,是 WordPress 安全防护的基础操作。
二、两种核心实现方法(附详细操作)
方法一:插件修改法(推荐新手,零代码风险)
插件法无需修改核心文件,兼容性强且操作简单,主流插件均支持将登录地址改为/wp-ztmao,以下以两款热门插件为例:
1. WPS Hide Login(轻量首选)
这款插件全球下载量超百万,特点是无数据库修改、仅通过钩子实现功能,对网站性能影响极小:
登录 WordPress 后台,进入「插件→安装插件」,搜索 “WPS Hide Login”,点击「安装→启用」。
进入「设置→常规」,拉至页面底部找到 “登录地址” 选项,输入wp-ztmao(无需加斜杠)。
在 “重定向 URL” 中填写网站首页或 404 页面地址,当有人访问/wp-login.php时会自动跳转,隐藏真实登录入口。
点击「保存更改」后,新登录地址即为https://你的域名/wp-ztmao,原/wp-admin和/wp-login.php自动失效。
2. All in One WP Security & Firewall(安全全能型)
若需同时强化其他安全防护(如防暴力破解、文件监测),可选择这款中文名为 “WP 安全” 的插件:
- 勾选 “启用重命名登录页面功能”,在 “登录页链接” 中输入wp-ztmao;
- 保存设置后,系统会自动屏蔽默认登录路径,仅允许通过新地址访问。
方法二:代码修改法(进阶用户,无需插件依赖)
适合有一定技术基础的用户,通过修改配置文件实现自定义登录地址,主要分为 “路径伪装” 和 “彻底限制” 两种方案:
方案 A:.htaccess 重写规则(Apache 服务器)
通过 URL 重写将/wp-ztmao映射到真实登录文件wp-login.php,实现路径伪装:
- 备份文件:通过 FTP 或主机文件管理器找到网站根目录的.htaccess文件,下载到本地备份;
- 添加规则:在文件开头添加以下代码(确保RewriteEngine On已存在):
RewriteEngine On
# 允许访问自定义登录地址/wp-ztmao
RewriteRule ^wp-ztmao$ /wp-login.php [L]
# 禁止直接访问默认登录页(可选)
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from 你的常用IP # 避免自己被拦截
</Files>
- 上传生效:将修改后的.htaccess上传覆盖原文件,访问https://你的域名/wp-ztmao即可登录。
方案 B:functions.php 钩子 + 重定向(全服务器通用)
通过主题函数文件实现登录地址替换与默认路径屏蔽,需注意主题更新可能覆盖代码:
- 编辑 functions.php:进入「外观→主题文件编辑器」,选择当前主题的functions.php文件;
- 添加核心代码:在文件末尾粘贴以下代码(将wp-ztmao改为你的自定义路径):
// 1. 替换所有系统生成的登录链接为/wp-ztmao
add_filter('login_url', 'custom_login_path', 10, 3);
function custom_login_path($login_url, $redirect, $force_reauth) {
$new_login_url = home_url('/wp-ztmao');
// 保留重定向参数(登录后返回原页面)
if ($redirect) {
$new_login_url = add_query_arg('redirect_to', urlencode($redirect), $new_login_url);
}
if ($force_reauth) {
$new_login_url = add_query_arg('reauth', '1', $new_login_url);
}
return $new_login_url;
}
// 2. 重定向默认登录页到404或首页
add_action('init', 'block_default_login');
function block_default_login() {
global $pagenow;
// 禁止访问wp-login.php和wp-admin(未登录状态)
if (($pagenow == 'wp-login.php' || $_SERVER['REQUEST_URI'] == '/wp-admin/') && !is_admin()) {
wp_redirect(home_url('/404')); // 重定向到404页面
exit();
}
}
- 补充.htaccess 规则:若需通过/wp-ztmao直接访问登录页,需配合添加方案 A 中的重写规则。
方案 C:修改 wp-config.php(不推荐,需谨慎)
部分教程提及修改wp-config.php中的WP_SITEURL参数,但此方法仅更改后台访问路径,无法屏蔽/wp-login.php,且可能导致静态资源加载异常,建议优先选择前两种方案。
三、关键注意事项与问题解决
1. 操作前必做准备
- 备份网站:通过主机面板或插件(如 UpdraftPlus)备份全站文件与数据库,避免操作失误导致网站瘫痪;
- 记录新地址:将https://你的域名/wp-ztmao添加到浏览器书签,或存储在本地文档中。
2. 常见问题及解决方案
|
问题场景
|
解决方法
|
|
忘记自定义登录地址
|
1. 插件法:通过 FTP 删除插件目录(如/wp-content/plugins/wps-hide-login),恢复默认登录页;2. 代码法:删除.htaccess中的限制规则或functions.php中的自定义代码
|
|
登录后跳转异常
|
检查functions.php中是否保留redirect_to参数,或在插件设置中关闭 “强制重定向”
|
|
插件冲突导致登录失败
|
通过 FTP 重命名/wp-content/plugins目录(临时禁用所有插件),登录后逐一排查冲突插件
|
|
升级 WordPress 后地址失效
|
1. 插件法:重新激活插件并检查设置;2. 代码法:若主题更新覆盖functions.php,需重新添加代码
|
3. 安全强化建议
- 限制 IP 访问:在.htaccess或服务器防火墙中仅允许常用 IP 访问/wp-ztmao路径;
- 隐藏用户名:安装 Edit Author Slug 插件修改作者链接(如/author/admin改为/author/editor),避免用户名泄露;
- 启用验证码:搭配 Login No Captcha reCAPTCHA 插件,防止机器人登录尝试;
- 定期更新:保持 WordPress 核心、主题及插件为最新版本,修复已知安全漏洞。
四、方法对比与选择建议
|
实现方式
|
优势
|
劣势
|
适合人群
|
|
WPS Hide Login 插件
|
操作简单、兼容性强、更新维护方便
|
依赖插件,极端情况下可能被绕过
|
新手、非技术站长
|
|
All in One WP Security
|
集成多重安全功能,一步到位
|
功能冗余,对小站性能略有影响
|
需全面安全防护的站点
|
|
.htaccess 代码法
|
不依赖插件,响应速度快
|
仅支持 Apache 服务器,规则写错易报错
|
熟悉服务器配置的用户
|
|
functions.php 代码法
|
全服务器通用,灵活度高
|
主题更新可能覆盖代码
|
有 PHP 基础的进阶用户
|
核心结论:90% 的用户推荐优先使用WPS Hide Login 插件,兼顾安全与便捷;若对插件依赖有顾虑,可选择functions.php+htaccess 组合方案,平衡灵活性与稳定性。