Module ngx_http_sub_module

The ngx_http_sub_module module is a filter that modifies a response by replacing one specified string by another.

This module is not built by default, it should be enabled with the --with-http_sub_module configuration parameter.

Example Configuration

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


Syntax:sub_filter string replacement;
Context:http , server , location

Sets a string to replace and a replacement string. The string to replace is matched ignoring the case. The string to replace (1.9.4) and replacement string can contain variables. Several sub_filter directives can be specified on one configuration level (1.9.4). These directives are inherited from the previous level if and only if there are no sub_filter directives defined on the current level.

Syntax:sub_filter_last_modified on | off;
Default:sub_filter_last_modified off;
Context:http , server , location

This directive appeared in version 1.5.1.

Allows preserving the “Last-Modified” header field from the original response during replacement to facilitate response caching.

By default, the header field is removed as contents of the response are modified during processing.

Syntax:sub_filter_once on | off;
Default:sub_filter_once on;
Context:http , server , location

Indicates whether to look for each string to replace once or repeatedly.

Syntax:sub_filter_types mime-type ...;
Default:sub_filter_types text/html;
Context:http , server , location

Enables string replacement in responses with the specified MIME types in addition to “ text/html ”. The special value “ * ” matches any MIME type (0.8.29).