Nginx区分PC端和移动端访问

在使用Nginx时,可以通过http_user_agent变量来判断用户访问的客户端类型,从而提供不同的内容或服务。下面是一个基于http_user_agent变量来判断是否为PC访问的Nginx配置示例。

  1. 理解$http_user_agent变量的含义及其在Nginx中的用途

$http_user_agent是Nginx中的一个内置变量,它包含了客户端浏览器发送给服务器的User-Agent字符串。这个字符串通常包含了浏览器类型、版本、操作系统等信息,可以用来区分不同的客户端类型。

  1. 研究常见的User-Agent字符串模式,特别是与PC浏览器相关的

不同的浏览器和操作系统会发送不同的User-Agent字符串。对于PC浏览器,常见的User-Agent字符串模式包括:

Mozilla/5.0 (Windows NT ...) AppleWebKit/... (KHTML, like Gecko) Chrome/...

Mozilla/5.0 (Windows NT ...) Gecko/... Firefox/...

Mozilla/5.0 (Macintosh; ...) AppleWebKit/... (KHTML, like Gecko) Safari/...

这些字符串中包含了浏览器名称(如Chrome、Firefox、Safari)和操作系统信息(如Windows NT、Macintosh)。

  1. 编写Nginx配置来根据$http_user_agent判断是否为PC访问

下面是一个禁止PC端访问的Nginx配置示例,它根据$http_user_agent变量来判断是否为PC访问,并返回不同的内容:

server {

listen 80;

server_name example.com;

location / {

set $is_pc 0;

判断是否为PC访问

if ($http_user_agent ~* "(Windows NT|Macintosh)") {

set $is_pc 1;

}

根据判断结果返回不同的内容

if ($is_pc = 0) {

root /usr/share/nginx/html/mobile;

} else {

#root /usr/share/nginx/html/pc;

return 403;

}

index index.html;

}

}

相关推荐
RisunJan8 小时前
Linux命令-rlogin(远程登录)
linux·运维
深圳恒讯8 小时前
菲律宾云服务器与传统VPS的架构差异
运维·服务器·架构
蓝天下的守望者8 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
小林ixn8 小时前
从“玩具工具”到“跨语言利器”:MCP 协议实战解析
运维·服务器·网络
小顿的企业观察9 小时前
中企出海战略规划,正在从“走出去”转向“走进去”
大数据·运维·人工智能·产品运营·制造
数智化转型推荐官9 小时前
2026统一身份管理系统五大发展趋势解读
java·运维·微服务
看菜鸡互10 小时前
探索用 SlideML 让大模型生成 PPT 的实验方法
java·运维
liguojun202512 小时前
篮球馆自动计时收费系统:从规则配置到自动结算的全流程拆解
java·大数据·运维·人工智能·物联网·1024程序员节
Promise微笑12 小时前
红外分辨率 160×120、320×240、384×288 与 640×480实战选型指南
大数据·运维·人工智能·物联网
云飞云共享云桌面13 小时前
单机建模卡顿运维繁琐!中小型机械制造厂云飞云 3D 云桌面落地
运维·服务器·网络·3d·自动化·电脑·负载均衡