LINUX.ORG.RU
решено ФорумAdmin

Nginx, if http_user_agent ~* curl не определять error_page

 , ,


0

1

Привет!
Есть условный include конфиг с error_page для всего, но бывает это создает проблемы тем, что затирает ответы в разных API где статус > 400 и есть полезная информация в теле ответа.

error_page 400 /400.html;
error_page 401 /401.html;
error_page 402 /402.html;
...
error_page 503 /503.html;
error_page 504 /504.html;
error_page 505 /505.html;

location /errorpage {
        alias /usr/share/nginx/errorpage;
        allow all;
}

location ~ /(10[0-3]|2[02][1-9]|30[1-8]|4[0125][0-9]|50[0-9])\.html {
        root /usr/share/nginx/errorpage;
        allow all;
        internal;
}

Хочу к примеру, что бы если user agent = curl, то директивы error_page не определялись. Только как это сделать правильно я пока не понял, в идеале бы еще без if условий реализовать.

Что то по типу такого представляю себе:

if ($http_user_agent !~* (curl|wget)) {
  error_page 400 /400.html;
  error_page 401 /401.html;
  error_page 402 /402.html;
...
  error_page 503 /503.html;
  error_page 504 /504.html;
  error_page 505 /505.html;
}

Может быть кто решал уже такую задачу или знает ответ?

Спасибо.

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.