location ^~ /{{HOST}}/ { alias "{{PATH}}/"; index index.php index.html; autoindex on; # Try the literal URI, then directory (checks for index), then fallback to root index.php try_files $uri $uri/ /{{HOST}}/index.php?$query_string; # PHP handling nested INSIDE the alias location to maintain context location ~ \.php$ { fastcgi_pass 127.0.0.1:{{PHP_PORT}}; fastcgi_index index.php; # Split path info to handle subdirectories correctly fastcgi_split_path_info ^/{{HOST}}(.+\.php)(.*)$; include "{{CONF_DIR}}/fastcgi_params"; # Bulletproof SCRIPT_FILENAME: combine base path with relative script name from split_path_info # On Windows + Alias, $request_filename can be flaky during try_files redirects fastcgi_param SCRIPT_FILENAME "{{PATH}}$fastcgi_script_name"; fastcgi_param DOCUMENT_ROOT "{{PATH}}"; fastcgi_param PATH_INFO $fastcgi_path_info; } }