Могу ли я отказать в nginx на основе URI и IP?

В основном у меня есть WordPress-сайт (с интернет-магазином и социальным логином). Я отказал в доступе к wp-login.php по IP-адресу. Проблема в том, что социальный логин использует этот файл wp-login. Поэтому мне интересно, возможно ли: - заблокировать почти все запросы к wp-login.php по ip-адресу и разрешить по ip только конкретные запросы. Имея в виду
wp-login.php разрешить 1 ip запретить все
wp-login.php?action=lostpassword разрешить 1 ip запретить все
wp-login.php?action=rp&key=.*?&login=.* разрешить 1 ip запретить все
,
,
wp-login.php?ywsl_social=google разрешить все ip
wp-login.php?ywsl_social=twitter разрешить все ip

Что-то вроде этого:

location = /wp-login.php {
    if ($query_string = "ywsl_social=google|ywsl_social=twitter") 
        {
            allow all;
            fastcgi_pass   unix:/var/sockets/sock.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
            fastcgi_param HTTPS on;
    }
    else {
            allow 1.1.1.1;
            deny all;
            fastcgi_pass   unix:/var/sockets/sock.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
            fastcgi_param HTTPS on;
        }

0 ответов

Другие вопросы по тегам