Welcome! Log In Create A New Profile

Advanced

Блокирование доступа с custom error page

March 11, 2020 01:12PM
Здравствуйте.

Я хотел бы заблокировать доступ к сайту по geoip признаку. При этом, мне бы хотелось возвращать стилизированную картинку.

я это вижу как-то так:

if ($allowed_country = no) {
return 403;
error_page 403 /errors/deny.html;
}

В самом конфиге много location-ов. Я не хотел бы копировать этот код во все из них.
Алетрнатива - указать его глобально, но тогда я не могу использовать в блоке if - "error_page 403 /pages/unavailable.html; " Эту директиву нельзя использовать в том контексте.

В итоге у меня получается или указать блокирование глобально в директиве server, но без красивой ошибки или копировать код во все location-ы

Конфиг выглядит примерно так:


server {
listen 443 ssl http2; ## listen for ipv4
listen [::]:443 ssl http2; ## listen for ipv6

server_name example.com;

root /var/www/html/

location / {
if ($allowed_country = no) {
return 403;
error_page 403 /pages/unavailable.html;
}
}

location = /admin {
try_files $uri /index.php$is_args$args;

if ($allowed_country = no) {
return 403;
error_page 403 /pages/unavailable.html;
}

}


location /errors/ {
root /var/www/html/errors/;
internal;
}

}

Подозреваю, что я что-то не так делаю. Прошу помочь. Спасибо!
Subject Author Posted

Блокирование доступа с custom error page

suberjin March 11, 2020 01:12PM

Re: Блокирование доступа с custom error page

Andrey Kopeyko March 11, 2020 03:26PM

Re: Блокирование доступа с custom error page

Andrey Kopeyko March 11, 2020 03:28PM

Re: Блокирование доступа с custom error page

suberjin March 11, 2020 03:35PM

Re: Блокирование доступа с custom error page

Oleg A. Mamontov March 11, 2020 03:54PM

Re: Блокирование доступа с custom error page

suberjin March 12, 2020 04:01AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 184
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready