Lembre-se de que o nginx geralmente avalia apenas um location , a menos que seja instruído especificamente para usar outro, como ao chamar um local nomeado em try_files (o que você faz).
Portanto, quando você atingir o local ^/admin , precisará apenas fazer o que for apropriado. Nesse caso, provavelmente será exatamente o mesmo try_files que você usou em location / .
location ~ ^/admin {
if ($source_trusted = "UNKNOWN") {
return 403;
}
try_files $uri @rewriteapp;
}