Veja o que a documentação diz:
This variable is equal to path to the file for the current request, formed from directives root or alias and URI request;
This variable is equal to the value of directive root for the current request;
This variable is equal to the URI request or, if if the URI concludes with a forward slash, then the URI request plus the name of the index file given by fastcgi_index. It is possible to use this variable in place of both SCRIPT_FILENAME and PATH_TRANSLATED, utilized, in particular, for determining the name of the script in PHP.
Como escrito aqui, há pelo menos uma diferença ao usar fastcgi_index ou fastcgi_split_path_info . Talvez haja mais ... é disso que eu sei agora.
Exemplo
Você recebe a solicitação /info/
e tem a seguinte configuração:
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
SCRIPT_FILENAME
seria igual a /home/www/scripts/php/info/index.php
, mas usando $request_filename
seria apenas /home/www/scripts/php/info/
.
A configuração de fastcgi_split_path_info
também é importante. Veja aqui para mais ajuda: link