Eu fiz isso usando reescrever
location /abcd {
rewrite ^/abcd\/([0-9a-zA-Z_\-\s\+]+)\/([0-9a-zA-Z_\-\s\+\(\)\.]+)$ /efgh.php?action=whatever;
}
location /xyz {
rewrite ^/yxz\/([0-9a-zA-Z_\-\s\+]+)$ /rst.php?action=whatever;
}
Há provavelmente uma maneira mais genérica, mas se você tiver um número limitado de URLs, isso pode funcionar. Isso pode enviar você no caminho certo. Eu provavelmente olharia para expressões regulares, grupos de captura e expressões.