Não é algo como isto vai funcionar para os primeiros 4? Você precisa colocá-los na ordem inversa para que o local mais global não corresponda ao restante antes que ele alcance os alvos.
location ~ ^/(?<path>.+)/(?<path2>.+)/(?<path3>.+)/(?<path4>.+)/.*$ {
rewrite ^/(.*)/$ /$path/index.html@$query_string%2F$path%2F$path2%2F$path3%2F$path4 break;
}
location ~ ^/(?<path>.+)/(?<path2>.+)/(?<path3>.+)/.*$ {
rewrite ^/(.*)/$ /$path/index.html@$query_string\%2F$path\%2F$path2\%2F$path3 break;
}
location ~ ^/(?<path>.+)/(?<path2>.+)/.*$ {
rewrite ^/(.*)/$ /$path/index.html@$query_string\%2F$path\%2F$path2 break;
}
location ~ ^/(?<path>.+)/.*$ {
rewrite ^/(.*)/$ /$path/index.html@$query_string\%2F$path break;
}
Eu tentei com um diretório chamado foo, no qual eu coloquei arquivos chamados
-
index.html@bar%2Ffoo
-
index.html@bar%2Ffoo%2Ffoo2
quando eu acesso link eu recebo o arquivo index.html@bar%2Ffoo, quando eu acesso link eu recebo o arquivo index.html@bar%2Ffoo%2Ffoo2.
Eu deixo você se adaptar para image.php