server {
    listen 80;
    server_name _;

    root  /var/www/html;
    index index.php index.html;

    # 1) Racine : liste les sous-dossiers (aucune réécriture vers /index.php)
    location = / {
        autoindex on;        # montre la liste des sous-répertoires
        # Pas de try_files ici => si pas d'index, Nginx affiche l'autoindex
    }

    # 2) Pour tout le reste, on tente de servir un fichier/rep, sinon on route vers le front du sous-projet
    location / {
        try_files $uri $uri/ @project_front;
    }

    # 3) Résolution du front controller du sous-projet
    #    - Si /<projet>/public/index.php existe, on l'utilise
    #    - Sinon /<projet>/index.php
    location @project_front {
        # extraire le 1er segment (nom du projet)
        set $proj "";
        if ($uri ~ "^/([^/]+)") { set $proj $1; }

        # privilégier public/index.php s'il existe
        if (-f $document_root/$proj/public/index.php) {
            rewrite ^ /$proj/public/index.php last;
        }

        # fallback vers index.php à la racine du projet
        rewrite ^ /$proj/index.php last;
    }

    # 4) Handler PHP
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_read_timeout 300;
    }

    # Sécurité basique
    location ~ /\. { deny all; }
    location ~* \.(env|ini|log|sql|bak)$ { deny all; }
}
