Sub#

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

当 从源代码构建 时,该模块默认不会被构建;必须通过 构建选项 --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#

语法

sub_filter string replacement;

默认值

—

上下文

http, server, location

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

sub_filter_last_modified#

语法

sub_filter_last_modified on | off;

默认值

sub_filter_last_modified off;

上下文

http, server, location

允许在替换期间保留原始响应的 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 类型。