Nginx可通过map指令映射域名到对应统计代码,再结合sub_filter变量替换实现按域名注入不同统计脚本;需转义HTML特殊字符、禁用HTML压缩、确保Content-Type为text/html。

Nginx 的 sub_filter 指令本身不支持基于域名的动态条件判断,它只能做静态的字符串替换。但你可以结合 map 指令 + 变量 + sub_filter,实现“按不同域名注入不同统计代码”的效果。
用 map 映射域名到对应统计代码
在 http 块中定义一个映射,把每个域名关联到其专属的统计脚本(注意:需提前对 HTML 特殊字符转义,尤其是 、<code>>、"):
map $host $ga_script {
default "";
"site-a.com" "<script>gtag('config', 'G-A1B2C3D4');</script>";
"site-b.net" "<script>gtag('config', 'G-E5F6G7H8');</script>";
"admin.example.org" "<!-- 管理后台不注入 -->";
}这样,请求到达时,Nginx 会根据 $host 自动设置 $ga_script 的值。
在 location 中启用 sub_filter 并插入变量
在服务 HTML 的 location 块中启用替换,并把 $ga_script 插入到页面底部(例如在










