前言
运营移动端专属网站时,很多站长希望仅对移动设备用户开放,同时屏蔽电脑端访问、阻止搜索引擎爬虫、以及限制微信、QQ等内置浏览器的访问。通过Nginx的http_user_agent指令即可在服务器层面实现这些过滤规则。本文详细介绍各类配置代码,并附上综合示例,适合需要做移动端限制或环境隔离的网站运维参考。
屏蔽电脑端访问
通过判断HTTP请求头中的User-Agent字段,可以精准识别访客设备类型并屏蔽非移动端请求:
server {
listen 80;
server_name example.com;
if ($http_user_agent ~* "(Windows|Linux|Mac|Android|iPhone)") {
return 403;
}
}
上述配置将屏蔽所有来自Windows桌面端、Linux、Mac、Android平板及iPhone以外的桌面浏览器请求。需要注意的是,这种写法是Nginx早期语法的条件判断,线上使用建议配合map指令做更规范的判断逻辑,避免在生产环境中触发过多条件判断影响性能。
屏蔽搜索引擎蜘蛛爬虫
如果网站不希望被搜索引擎收录,可以通过User-Agent过滤屏蔽主流爬虫:
server {
listen 80;
server_name example.com;
if ($http_user_agent ~* "(Baiduspider|Googlebot|Yahoo! Slurp|MSNBot|Sogou spider)") {
return 403;
}
}
支持的爬虫包括:百度蜘蛛(Baiduspider)、谷歌蜘蛛(Googlebot)、雅虎蜘蛛(Yahoo! Slurp)、微软蜘蛛(MSNBot)、搜狗蜘蛛(Sogou spider)。配置后相关蜘蛛将无法抓取页面内容,请根据实际需求酌情使用。
屏蔽微信内置浏览器访问
微信内置浏览器发出的请求会携带MicroMessenger标识,通过以下配置可以一键屏蔽:
server {
listen 80;
server_name example.com;
if ($http_user_agent ~* "MicroMessenger") {
return 403;
}
}
此配置适用于不希望微信内置浏览器访问的网站场景,如独立移动端应用仅允许通过系统浏览器打开的情况。
屏蔽QQ内置浏览器访问
同理,QQ内置浏览器的请求会携带QQ标识,使用以下规则即可屏蔽:
server {
listen 80;
server_name example.com;
if ($http_user_agent ~* "QQ") {
return 403;
}
}
此规则会将所有内置QQ浏览器的访问请求返回403禁止访问,请注意部分QQ客户端可能使用其他User-Agent字符串,如需更精确屏蔽建议配合日志分析后补充。
综合配置示例
将以上所有规则合并到同一个server块中,一次性实现对电脑端、爬虫、微信和QQ的全面屏蔽:
server {
listen 80;
server_name example.com;
# 屏蔽电脑端桌面浏览器
if ($http_user_agent ~* "(Windows|Linux|Mac)") {
return 403;
}
# 屏蔽搜索引擎蜘蛛
if ($http_user_agent ~* "(Baiduspider|Googlebot|Yahoo! Slurp|MSNBot|Sogou spider)") {
return 403;
}
# 屏蔽微信内置浏览器
if ($http_user_agent ~* "MicroMessenger") {
return 403;
}
# 屏蔽QQ内置浏览器
if ($http_user_agent ~* "QQ") {
return 403;
}
# 其他正常访问处理
location / {
root /var/www/html;
index index.html index.htm;
}
}
适用场景
- 移动端H5游戏或应用页面,限制非移动设备访问
- 需要做环境隔离的后台管理系统,防止外部电脑端访问
- 临时屏蔽某类蜘蛛集中爬取,降低服务器负载
- 微信公众号内禁止直接访问,强制跳转指定页面
注意事项
- Nginx配置修改后需执行 nginx -s reload 重新加载配置
- 频繁使用if条件判断可能影响性能,建议生产环境优先使用map指令实现
- 返回403后用户会看到空白页面或403报错,建议同时配置错误页面让提示更友好
- 部分伪装User-Agent的爬虫仍可绕过检测,安全限制不能完全依赖这一层
截图
![图片[1]-Nginx屏蔽电脑端蜘蛛微信QQ访问教程 | 仅允许移动端设备访问配置大全-空木白博客](https://wuzuhua.cn/wp-content/uploads/2026/04/20260429164147491-2OEOB_D8A07UQXLJA-1024x481.png)
总结
通过Nginx的http_user_agent条件判断,可以灵活实现电脑端屏蔽、蜘蛛爬虫屏蔽、微信QQ内置浏览器屏蔽等多种访问控制需求。综合配置示例将四种规则整合到同一server块中,一行配置即可完成全面限制,适合移动端专属网站或需要做环境隔离的场景使用。









暂无评论内容