sub_filter_once

Директива `sub_filter_once` контролирует, применяется ли замена только один раз в ответе или каждый раз, когда обнаруживается указанная подстрока.

Синтаксисsub_filter_once on | off;
По умолчаниюoff
Контекстhttp, server, location
Аргументыflag

Описание

Директива sub_filter_once используется в контексте NGINX http, server или location для определения поведения замен подстрок, выполняемых директивой sub_filter. Если установлено 'on', замена затрагивает только первое вхождение указанной строки в теле ответа. Напротив, если установлено 'off', sub_filter обработает все случаи подстроки, изменяя их в итоговом выводе. Это особенно полезно, когда присутствует несколько одинаковых строк и достаточно одной замены без изменения каждого вхождения — таким образом избегаются непреднамеренные искажения контекста ответа.

Эта директива принимает логическое значение ('on' или 'off'). По умолчанию обычно установлено off, что означает разрешение множественных замен, если не указано иное. Для работы sub_filter_once требуется включение модуля sub в NGINX, что критично для корректного функционирования директивы. Дополнительно необходимо правильно настроить sub_filter, чтобы заранее определить конкретные подстроки для замены перед применением одиночных или множественных замен в соответствии с настройкой sub_filter_once.

Пример конфига

sub_filter 'old_text' 'new_text';
sub_filter_once on;

Убедитесь, что директива sub_filter используется вместе с sub_filter_once; сама по себе она неэффективна.

Имейте в виду, что порядок директив может повлиять на итоговый результат, особенно в сложных телах ответа.

Использование sub_filter_once при высокой нагрузке может повлиять на производительность из-за дополнительных проверок наличия вхождений подстановки.

← Ко всем директивам