如何限制WordPress站点访问,仅开放给指定IP及IP段?
别担心,这个需求完全不用复杂编码或者插件就能搞定,咱们直接从服务器配置入手就行,我给你分两种最常见的服务器情况一步步说,都是复制粘贴就能用的配置,操作起来很简单~
方法一:Apache服务器用.htaccess文件(适合大多数虚拟主机)
如果你的网站用的是Apache服务器(很多虚拟主机默认都是这个),可以用根目录的.htaccess文件来限制访问:
- 先登录你的网站文件管理后台(比如cPanel的文件管理器、FTP工具),找到网站根目录(一般是
public_html或者www文件夹) - 找到
.htaccess文件,如果没有就新建一个(注意文件名前面的点不能丢) - 把下面的代码复制进去,替换成你公司的IP地址或IP段:
# 先拒绝所有访问 Order Deny,Allow Deny from all # 允许单个特定IP(替换成你的公司IP) Allow from 192.168.1.100 # 允许整个IP段(比如192.168.1.0到192.168.1.255,按需修改) Allow from 192.168.1.0/24 # 如果有多个IP段,继续加Allow from就行 Allow from 10.0.0.0/8
- 保存文件就生效了,不用重启服务器
方法二:Nginx服务器配置(适合VPS/独立服务器)
如果你的网站用的是Nginx服务器,需要修改网站的配置文件:
- 登录你的服务器(用SSH工具,比如Xshell),找到网站的配置文件,一般路径是
/etc/nginx/sites-available/你的网站域名.conf - 打开配置文件,找到
server块,在里面添加下面的代码(放在location / { ... }里面):
location / { # 先拒绝所有IP deny all; # 允许单个特定IP allow 192.168.1.100; # 允许整个IP段 allow 192.168.1.0/24; # 多个IP段继续加allow即可 allow 10.0.0.0/8; # 原来的其他配置(比如root、index)保留不动 root /var/www/你的网站目录; index index.html index.php; }
- 保存文件后,重启Nginx让配置生效,执行命令:
sudo systemctl restart nginx
实用小提示
- 确认IP正确性:可以让公司IT给你准确的办公IP/IP段,或者自己用公司网络百度“我的IP”获取单个IP;IP段的格式比如
192.168.1.0/24表示从192.168.1.0到192.168.1.255的所有IP - 避免锁自己在外:如果不小心写错配置导致自己也访问不了,联系你的服务器提供商(虚拟主机后台提交工单、VPS服务商客服),让他们帮你删除或修改配置文件就行,完全不用慌
- 测试验证:用手机流量(不在公司IP范围内)访问网站,应该会显示403禁止访问;用公司网络访问就能正常打开,这就说明配置成功了
内容的提问来源于stack exchange,提问作者Santiago Cuellar León




