sub_filter_once off 可使 Nginx 的 sub_filter 对响应体中所有匹配项替换,而非仅首次;适用于 HTML 中批量注入广告、关键词链接或统计脚本,需配合 sub_filter 使用且仅对 text/html 等指定 MIME 类型生效。

使用 Nginx 的 sub_filter_once off 可以让 sub_filter 对响应体中**所有匹配项**进行替换,而非仅首次出现的位置。这为在网页 HTML 中动态注入关键词、广告代码、统计脚本等提供了轻量级、服务端统一控制的方案,无需修改源站内容。
启用全局替换:sub_filter_once off 的作用
默认情况下,Nginx 的 sub_filter 只替换每个响应中**第一次出现**的匹配字符串(sub_filter_once on)。设为 off 后,它会遍历整个响应体,对**所有匹配位置**执行替换——这对注入多个广告位、批量插入关键词链接或统一添加 meta 标签非常关键。
注意:该指令必须配合 sub_filter 使用,且仅对 text/html 和 text/css 等明确声明的 MIME 类型生效(需确保后端返回正确的 Content-Type)。
典型应用场景与配置示例
以下配置在 location 块中实现:在所有 HTML 响应末尾插入广告代码,并将页面中所有「免费」替换为带跳转的关键词链接:
- 注入页脚广告(追加到











