Eu percebi isso. O problema é que o Symfony recebe o pedido uri, que não foi afetado pela reescrita no que diz respeito ao fastcgi. Eu adicionei o "fastcgi_param REQUEST_URI $ uri? $ Args;" e tadaa! Funciona!
Aqui está a configuração fixa (sem as linhas em excesso, como a localização da raiz '/'):
server {
root /var/www/sub/1.0/web;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
# If user writes the app_xxx.php into the url, remove it:
rewrite ^/app_dev\.php/?(.*)$ /$1 permanent;
location /sub/1.0/ {
index app_dev.php;
rewrite ^/sub/1.0/(.*)$ /app_dev.php/$1 last;
return 403; # If the rewrite was not succesfull, return error.
}
location ~ (app|app_dev).php {
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param REQUEST_URI $uri?$args;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}
}