在 NGINX 中,sub_filtersub_filter_once 是用于内容替换的指令,通常与 ngx_http_sub_module 模块一起使用。这个模块允许你在响应中进行字符串替换,以便动态修改页面内容。

1. sub_filter

sub_filter 用于在 NGINX 处理 HTTP 响应时执行文本替换。它允许你指定要替换的原始文本和替换后的新文本。

语法:

sub_filter <pattern> <replacement>;
  • <pattern>:需要替换的文本模式(可以是正则表达式,也可以是普通字符串)。
  • <replacement>:用来替换 <pattern> 的文本。

例子:

假设你希望将响应中的所有 http://old-url.com 替换为 https://new-url.com,可以这样配置:

sub_filter 'http://old-url.com' 'https://new-url.com';

2. sub_filter_once

sub_filter_once 用来指定是否只进行 一次替换,即只替换响应中的第一个匹配项。默认情况下,sub_filter 会替换所有匹配的文本,但 sub_filter_once 可以让你控制是否只替换第一次出现的匹配内容。

语法:

sub_filter_once on|off;
  • on:表示只进行一次替换,默认是 off,即替换所有匹配的文本。
  • off:表示对所有匹配项进行替换。

例子:

假设你只想替换响应中第一次出现的 http://old-url.com,可以这样配置:

sub_filter_once on;
sub_filter 'http://old-url.com' 'https://new-url.com';

总结:

  • sub_filter:在 NGINX 响应中进行文本替换,将所有匹配的文本替换为指定的文本。
  • sub_filter_once:控制替换是否仅发生一次(默认情况下,替换所有匹配项)。如果设置为 on,只会替换第一次出现的匹配文本。

标签: none

添加新评论