# Routing auf dem App-Node: # /api, /p, /t, /css, /bundles, /health → Symfony (PHP-FPM) # alles andere → Vue-SPA (history-fallback) server { listen 80; server_name _; # Standard: SPA-Build root /spa; index index.html; client_max_body_size 32m; # Symfony-Pfade (API + serverseitige öffentliche Seiten + interne Endpunkte) location ~ ^/(api|p|t|css|bundles|health|internal)(/|$) { root /app/public; try_files $uri /index.php$is_args$args; } location ~ ^/index\.php(/|$) { root /app/public; fastcgi_pass php:9000; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $document_root; internal; } # SPA-Routing (history mode) location / { try_files $uri /index.html; } # direkte .php-Aufrufe blockieren location ~ \.php$ { return 404; } }