Цель: если правило является триггером, замените обычный ответ конкретным контентом на определенный код ответа в соответствии с URI запроса.
Я пытаюсь создать набор правил для замены нормального контента на конкретный контент:
- запрос: /test/my-request/1.html -> предоставить содержимое /error-page/error-abc.html с http-кодом 429
- запрос: /test/my-request/50.html -> предоставить содержимое /error-page/error-cde.html с http-кодом 429
Я пытался использовать
SecRule IP:MYCOUNTER "@gt 3" "phase:2,pause:300,deny,status:429,setenv:RATELIMITED,skip:1,nolog,id:10000003"
ErrorDocument 429 "Rate Limit Exceeded"
Проблема в том, что я не могу определить коды http вне допустимого диапазона, поэтому я привязан к разрешенному коду, и он в любом случае грязный, и ErrorDocument допускает только один ответ.
Я попытался перехватить его с помощью директивы proxy , поскольку я не хочу, чтобы клиент экспериментировал с перенаправлением, с
SecRule IP:MYCOUNTER "@gt 3" "phase:2,pause:300,deny,status:429,setenv:RATELIMITED,skip:1,nolog,id:10000003,proxy:http://127.0.0.1/error-page/error-cde.html"
но код ответа не переопределяется на 429 и возвращается http-200 (из прокси-сервера).