WordPress私密网站怎么做?4种方法让陌生人进不来

本站部分链接为联盟推广链接。通过这些链接购买,我可能获得佣金...

这不仅不会增加您的实际费用,通常还能让您享受到专属折扣。所有上榜推荐均基于真实项目环境下的自费实测,排名完全由客观测评数据决定。详细规则请查阅《免责声明》。

网站刚装好主题,首页还挂着示例文字,产品页一半是空的。这时候域名已经解析出去了,谁都能打开。更尴尬的是 Google 爬虫不挑食,半成品页面照样抓。等你正式上线,搜索结果里躺着的可能还是那几张 Lorem ipsum 截图。

所以网站没准备好之前,最稳的做法是先把门锁上。问题是 WordPress 的「锁」有好几种,锁的位置不一样,效果差得也挺远。这篇我按「锁多大范围、锁得多死」把 4 种常用方法捋一遍,你对号入座就行。

你要锁整站,还是只锁几篇内容?

这一步想错了,后面装什么插件都是白折腾。

WordPress 官方文档说得很直白:隐藏整个网站不是核心自带功能,要靠插件或者服务器配置。单篇文章、单个页面就简单多了,编辑器里原生就能设成私密或加密码。

拿常见场景对一下:

  • 网站开发中,只想给客户预览,这是整站锁。
  • 家庭相册、班级博客、公司内部知识库,也是整站锁,而且访客要长期登录。
  • 公开的外贸展示站里,有几页报价单只给老客户看,这是单页锁。

还有一种情况,网站压根只有你自己看,比如练手、测主题。说实话这种连服务器都不用开,用 LocalWP 在电脑上搭本地站更省事。不花钱,改坏了也没人看见。

方法一:WordPress 自带的「私密」和「密码保护」

这个方法只锁单篇内容,但零插件,适合偶尔藏一两页的情况。

打开要处理的文章或页面,看右侧边栏的文章设置面板。找到状态(或可见性)那一项,默认是「公开」,点开后有两个选项:

  • 私密:只有管理员和编辑能看到,普通访客连文章列表里都看不到这篇。就算有人猜中 URL,打开也是 404。
  • 密码保护:标题照样显示,正文位置变成一个密码框,输对了才能看内容。

选好以后点「更新」就生效了。

wordpress post visibility private password

这里有两个坑我得提一下。

第一个,后台所有编辑和管理员看私密、加密内容都不需要密码,还能直接改成公开。团队里管理员一多,这层「私密」其实挺薄的。

第二个更隐蔽:文章里插的图片存在 /wp-content/uploads/ 下面,图片地址本身是公开的。文章锁了,图片 URL 发出去照样能打开。

如果你要的是「一个密码锁全站」,或者「文章前半段公开、后半段加密」,原生功能就不够用了。这类需求我之前专门写过 3 款密码保护插件的横向对比,可以直接对照选。

方法二:Force Login,装上即锁,零设置

要锁整站,又希望访客用自己的账号登录(而不是共用一个密码),Force Login 是我觉得最省心的一个。

它在 WordPress.org 上有 30,000+ 活跃安装,评分 4.8,当前版本 5.6.3。它连设置页面都没有,启用就是锁上,停用就是开放。没登录的访客打开任何页面,都会被送到 wp-login.php。登录成功后,它会把人送回原本想看的那个页面,不会一股脑扔回首页。

另外它默认把 REST API 也限制成仅登录用户可用。很多人会漏掉这条通道:页面挡住了,数据却能从 /wp-json/ 被扒走。Force Login 把这条路也堵上了。、

插件下载地址:https://wordpress.org/plugins/wp-force-login/

wp force login

锁上以后,怎么让客户、家人进来?给他们开账号就行。后台进「用户 → 添加用户」,角色选订阅者。订阅者只能看内容,碰不到后台任何设置。各个角色能干什么、为什么别乱给编辑权限,可以看这篇 WordPress 5 种用户角色的权限区别。

那如果有一两个页面必须公开呢?比如联系页要留给新客户填询盘。Force Login 没有后台开关,只能用一小段代码放行。把下面这段放进子主题的 functions.php,或者 Code Snippets 插件里:

把 contact、landing 换成你自己页面的别名就行。

还有一个和缓存有关的提醒。如果你在 Cloudflare 开了「缓存所有内容」之类的整页缓存,CDN 有可能把某个已登录用户看到的页面缓存下来,再发给没登录的人。Force Login 自己会发送禁止缓存的响应头,但 CDN 规则写得太激进时未必认这个头。锁站期间,CDN 整页缓存最好先关掉。

方法三:My Private Site,要后台开关、要开放注册就选它

Force Login 太「裸」了,有人会觉得心里没底:没有界面,不知道到底开没开。My Private Site 正好相反,什么都在后台点选。

它在 WordPress.org 上有 10,000+ 活跃安装,版本 4.2.3,官方标注测试到 7.1.3,要求 PHP 7.4 以上。

wp My Private Site

装好启用后,后台左侧会多一个 My Private Site 菜单。进去切到 Site Privacy 标签,勾选 Enable Privacy,保存,整站就锁上了。

如果你用的是 Elementor 页面,或者发现勾上了却没生效,把同一页的 Compatibility Mode 改成 Theme Fix 再试。这是官方给的处理办法。

my private site enable privacy

它比 Force Login 多出来的东西,主要有三块。

一是登录后去哪可以选:回到原页面、首页、仪表盘,或者自定义一个地址。

二是可以开放自助注册。这对内部社区、班级站很方便,还自带一套挡垃圾注册的功能,比如蜜罐字段、可选的 reCAPTCHA,还能拦截一次性邮箱。如果你打算开放注册,顺手把注册体验也优化一下,参考让用户注册时自己设置密码。

三是可以选择屏蔽未登录的 REST API 访问。

不过有几样东西是要钱的。「指定某些页面公开」属于付费扩展 Public Pages,「发临时访问链接」是付费的 Guest Access。另外插件的技术支持已经搬到开发者自己的 ZATZLabs 网站,WordPress.org 论坛上不再回复。

顺带分清一件事:如果你是想让外包或技术人员临时进后台干活,而不是看前台,那是另一码事。用临时免密登录链接更合适,到期自动失效,不用把管理员密码交出去。

My Private Site 官方页面自己也写明了一个局限:媒体文件的直链、网站目录下的非 WordPress 文件(.html、.php),它都管不到。 这条限制其实对方法二同样成立。插件是在 WordPress 加载之后才拦人的,而图片这类静态文件根本不经过 WordPress。

方法四:宝塔面板「加密访问」,连图片一起锁死

要想图片、PDF 也一并锁住,就得把锁往前挪,挪到 Web 服务器(Nginx)这一层。宝塔面板里自带这个功能,原理是 HTTP 基本认证:浏览器在加载网站任何内容之前,先弹一个系统级的用户名密码框,输不对什么都拿不到,WordPress 都还没开始运行。

操作路径大致是:宝塔后台 → 网站 → 点目标站点的「设置」→ 访问限制 → 加密访问 → 添加。名称随便填,加密目录填 / 表示整站,再设一组用户名和密码,保存即可。

bt panel site password access

设好以后用无痕窗口打开网站,看到的不是网页,而是浏览器自己弹出来的登录框。这是最直观的检验方法。

browser basic auth login prompt

这把锁最死,代价也最明显。

所有人都得多记一组密码。如果站内还要登录 WordPress,等于要过两道门。Google 爬虫、网站监控服务也全被挡在外面,锁站期间监控报警会一直响,你得心里有数。

WordPress 有些功能会让服务器「自己访问自己」,叫回环请求,站点健康检查、部分定时任务都会用到。基本认证有可能把这类请求也拦下来。所以开启后建议去「工具 → 站点健康」看一眼有没有报错。这一点是我的经验判断,不确定,不同环境表现可能不一样。

用虚拟主机的朋友,cPanel 之类的主机后台一般也有类似的「目录加密」功能,原理相同。还没定主机、想先看看各家后台好不好用的,可以翻一下 WordPress 主机推荐汇总。

四种方法怎么选?一张表对一下

方法锁的范围访客怎么进图片直链能锁住吗上手难度最适合
原生私密/密码单篇文章、页面管理员登录或输密码锁不住很低偶尔藏一两页
Force Login整站各自账号登录锁不住低(放行页面要写代码)开发预览、小团队内部站
My Private Site整站各自账号登录,可开放注册锁不住低家庭站、社团、要后台开关的人
宝塔加密访问整站,含所有文件浏览器弹窗输入共用密码能锁住中资料敏感、个人私密全站封

我自己的建议是:开发期或者搭建私密站时,可以用宝塔加密访问整个封死,省得操心图片泄露。上线后如果还有内部资料要藏,再换成插件方案,让每个人用自己的账号登录,谁看过、谁离职,都好管理。

别把「建议搜索引擎不索引」当成私密

很多新手装完 WordPress,会去「设置 → 阅读」勾上「建议搜索引擎不索引本站点」,然后以为网站就藏起来了。

其实不是。这个选项只是给搜索引擎递了张纸条,请它们别收录。守规矩的爬虫会照办,但任何人拿着网址照样能打开你的网站,它对真人访客没有任何拦截作用。

wordpress reading discourage search engines

这和 robots.txt 是一个道理:它们管的是「爬虫来不来、收不收录」,不管「人能不能进」。两者具体怎么分工,可以看 robots.txt 和 noindex 到底差在哪。

要真正挡住别人访问,还是得靠上面四种方法里的一种。阅读设置里那个勾,只能算锦上添花。

等网站准备好要公开了,倒着检查一遍:

  1. 停用私密插件,或者关掉宝塔加密访问。
  2. 回「设置 → 阅读」把那个勾去掉。很多人就栽在忘了这一步,上线几个月 Google 一页都没收录。
  3. 用无痕窗口打开几个页面,确认真的能直接访问。
  4. 去 Google Search Console 重新提交 sitemap。

解锁顺序搞反问题也不大,但第 2 步千万别漏。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


快捷菜单
WordPress 主机
VPS 主机
最新优惠
正版授权
VPS 补货监控