Kann ich in Nginx basierend auf URI und IP ablehnen?

Kann ich in Nginx basierend auf URI und IP ablehnen?

Im Grunde habe ich eine WordPress-Site (mit einem E-Commerce-Shop und einem Social Login). Ich habe allen Zugriff auf wp-login.php basierend auf der IP-Adresse verweigert. Das Problem ist, dass Social Login diese wp-login-Datei verwendet. Daher frage ich mich, ob es möglich ist: - fast alle Abfragen an wp-login.php nach IP-Adresse zu blockieren und nur bestimmte Abfragen nach IP zuzulassen. Das heißt:
wp-login.php1 IP zulassen, alle verweigern,
wp-login.php?action=lostpassword1 IP zulassen, alle verweigern,
wp-login.php?action=rp&key=.*?&login=.*1 IP zulassen, alle verweigern
, .
.
wp-login.php?ywsl_social=google alle IPs zulassen
wp-login.php?ywsl_social=twitter , alle IPs zulassen.

So etwas wie das hier:

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;
        }

verwandte Informationen