upvote
Another version if this if the 301 is too much is to just close the connection then have a daemon or cron job shove their IP into a NFTables ipset or blackhole route them. Be sure to have exclusion elements so one can not block their own gateway or corporate SNAT groups.

    location ~* /(xmlrpc|wp-login\.php|wp-admin) { set $ban 1; return 444 ''; }

    # grep banip /etc/nginx.conf
    log_format banip '$remote_addr';

    # grep banip /etc/nginx/http.d/some-server.conf
    access_log /var/log/nginx/ban.log banip if=$ban;
reply