UA 分流验证台

验证 Nginx 根据设备类型 + iOS 版本,把同一个 /main.js 请求分流到不同 JS 文件。

浏览器自检设备

检测中…
JS 端解析

Nginx 返回脚本

等待加载…
由 /main.js 实际返回

一致性判定

Nginx 分流 vs 浏览器自检

本次请求信息

设备类型
系统
iOS 主版本
期望脚本
实际脚本
完整 User-Agent

分流规则表

设备 / 系统UA 特征返回文件
iPhone iOS 20 及以上iPhone OS 20_~99_main-ios20plus.js
iPhone iOS 19iPhone OS 19_main-ios19.js
iPhone iOS 18iPhone OS 18_main-ios18.js
iPhone iOS 17iPhone OS 17_main-ios17.js
iPhone iOS 16iPhone OS 16_main-ios16.js
iPhone iOS 15iPhone OS 15_main-ios15.js
iPhone iOS 14iPhone OS 14_main-ios14.js
iPhone iOS 13iPhone OS 13_main-ios13.js
iPhone iOS ≤12iPhone OS 10_~12_main-ios12lower.js
安卓androidmain-android.js
iPadiPadmain-ipad.js
PC / 其他兜底main-pc.js
注意:新版 iPadOS 的 UA 伪装成 Macintosh,会被识别为 PC,属于苹果 UA 策略限制,UA 方案无法规避。

网站根目录文件清单

index.html ← 本验证页(上传到根目录) main-pc.js ← PC 端脚本 main-android.js ← 安卓脚本 main-ipad.js ← iPad 脚本 main-ios20plus.js ← iOS 20 及以上 main-ios19.js ← iOS 19 main-ios18.js ← iOS 18 main-ios17.js ← iOS 17 main-ios16.js ← iOS 16 main-ios15.js ← iOS 15 main-ios14.js ← iOS 14 main-ios13.js ← iOS 13 main-ios12lower.js ← iOS 12 及以下(兜底) main.js ← 不需要真实文件,由 Nginx 内部转发(若未配置规则则 404)

测试步骤

上传文件

index.html 与全部 main-*.js(共 12 个)上传到网站根目录(如 /www/wwwroot/你的站点/)。

配置 Nginx

宝塔 → 网站 → 设置 → 配置文件,把 map 块放在 server{} 外面顶部,location ^~ /main.js 写入 server{} 内,保存自动校验。

模拟不同设备

按 F12 → 设备图标切换手机;要测具体 iOS 版本,在「网络条件 / Network conditions」里关闭 Use browser default,自定义 UA,把 CPU iPhone OS 17_x 中的 17 改成 13~20 任一版本。

对照判定

刷新页面,看顶部三张卡片:Nginx 返回的脚本名应与浏览器自检设备/版本一致,判定显示「一致」即验证通过。