ngx_http_sub_module模块是一个过滤器,它通过将一个指定的字符串替换为另一个指定的字符串来修改响应。
默认情况下未构建此模块,应使用--with-http_sub_module
配置参数启用它。
sub_filter
配置格式
语法: sub_filter string replacement;
默认: —
上下文: http, server, location
设置要替换的字符串和替换字符串。忽略大小写匹配要替换的字符串。 要替换的字符串和替换字符串可以包含变量。 可以在一个配置级别上指定几个sub_filter指令。当且仅当当前级别上未定义sub_filter指令时,这些指令才从上一级继承。
示例
aaaaaaa
bbbbbbb
aaaaaaa
ccccccc
ddddddd
sub_filter 'aaaaaaa' 'replacement';
成功替换!但是为什么只替换了第一个呢?这是因为默认配置sub_filter_once on;
将其设置为off
即可全部替换了。
sub_filter_last_modified
配置格式
语法: sub_filter_last_modified on | off;
默认: sub_filter_last_modified off;
上下文: http, server, location
这条指令在1.5.1版本出现。
允许在替换期间从原始响应中保留"Last-Modified"字段,以方便响应缓存。
默认情况下,在处理期间修改响应的内容时,将删除标头字段。
sub_filter_once
配置格式
语法: sub_filter_once on | off;
默认: sub_filter_once on;
上下文: http, server, location
设置要替换一次还是重复替换的每个字符串。
sub_filter_types
配置格式
语法: sub_filter_types mime-type ...;
默认: sub_filter_types text/html;
上下文: http, server, location
除了"text/html"之外,还可以在具有指定MIME类型的响应中启用字符串替换。 特殊值"*"与任何MIME类型匹配。
示例
#这是原来的css文件,由于sub_filter默认只对text/html类型的响应进行替换操作,所以css文件不会
body{
margin: 0 auto;
}
.my-title{
margit: 0 auto;
}
sub_filter 'my-title' 'title';
#对text/css类型的响应也进行替换操作
sub_filter_types text/css;
如没有变化,注意缓存。
版权属于:带翅膀的猫
本文链接:https://www.chengpengper.cn/archives/69/
转载时须注明出处及本声明