There is likely a better way to do this, but when asked to add a redirect catching some moved wordpress files in nginx, this was what I came up with.
set $fix_redirect "";
if ($request_uri ~ '/wp-content/uploads(.*)') {
set $fix_redirect $1;
}
if ($fix_redirect ~ '^/site/3') {
set $fix_redirect "";
}
if ($fix_redirect != "") {
return 301 "xxx/wp-content/uploads/site/3$fix_redirect";
}
Maybe it will help someone else or possibly there's a better way of doing it that you can let me know?