Você precisa alterar o bloco @rewrite
para separar o nome do aplicativo e o URL dentro do aplicativo.
Tente isto:
location @rewrite {
rewrite ^/(?<appname>[^/]+)/public/(?<appurl>.+)$ /$appname/public/index.php?_url=/$appurl last;
}
Então, aqui nós capturamos a primeira parte do URI do pedido para a variável $ appname, e então o URL dentro do aplicativo para a variável $ appurl. Em seguida, usamos essas duas variáveis para reescrever o acesso à URL real no sistema de arquivos.
BTW. Você não precisa de set $root_path
linha, você pode usar root /srv/www/htdocs
diretamente. Você também pode remover o bloco location ~* ^/(css|img|js|flv|swf|download)/(.+)$
completamente, porque não faz sentido reajustar a diretiva root
dentro dele.