模块 ngx_http_sub_module

配置示例
指令
     sub_filter
     sub_filter_last_modified
     sub_filter_once
     sub_filter_types

ngx_http_sub_module 模块是一个过滤器,通过用另一个指定的字符串替换一个字符串来修改响应。

该模块默认不构建,需要使用 --with-http_sub_module 配置参数来启用。

配置示例

location / {
    sub_filter '<a href="http://127.0.0.1:8080/'  '<a href="https://$host/';
    sub_filter '<img src="http://127.0.0.1:8080/' '<img src="https://$host/';
    sub_filter_once on;
}

指令

语法 sub_filter string replacement;
默认值
上下文 http, server, location

设置要替换的字符串和替换字符串。要替换的字符串匹配不区分大小写。要替换的字符串 (1.9.4) 和替换字符串可以包含变量。可以在同一配置级别 (1.9.4) 指定多个 sub_filter 指令。这些指令仅在当前级别未定义 sub_filter 指令时才从上一配置级别继承。

语法 sub_filter_last_modified on | off;
默认值
sub_filter_last_modified off;
上下文 http, server, location

此指令出现在 1.5.1 版本中。

允许在替换过程中保留原始响应中的 “Last-Modified” 头部字段,以便于响应缓存。

默认情况下,由于响应内容在处理过程中被修改,因此该头部字段会被移除。

语法 sub_filter_once on | off;
默认值
sub_filter_once on;
上下文 http, server, location

指示是查找每个要替换的字符串一次还是重复查找。

语法 sub_filter_types mime-type ...;
默认值
sub_filter_types text/html;
上下文 http, server, location

除了 “text/html” 外,还可以在指定 MIME 类型的响应中启用字符串替换。特殊值 “*” 匹配任何 MIME 类型 (0.8.29)。