Nginx

Nginxdocum__噸r哦哦__d這C在米和n噸r這這噸document_rootfastcgi_script_name 與 $request_filename

  • August 8, 2019

如果在我的配置文件中設置,我不會注意到任何區別

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

或者:

fastcgi_param  SCRIPT_FILENAME    $request_filename;

他們分別做什麼?兩者中的一個比另一個更好嗎?

提前致謝。

這是文件中的內容:

$request_filename

此變數等於目前請求的文件路徑,由指令根或別名和 URI 請求組成;

$document_root

該變數等於目前請求的指令根的值;

$fastcgi_script_name

此變數等於 URI 請求,或者,如果 URI 以正斜杠結尾,則 URI 請求加上由 fastcgi_index 給出的索引文件的名稱。可以使用此變數代替 SCRIPT_FILENAME 和 PATH_TRANSLATED,特別是用於確定 PHP 中腳本的名稱。

如此處所寫,使用fastcgi_indexfastcgi_split_path_info時至少有區別。也許還有更多……這就是我現在所知道的。

例子

您收到請求/info/並具有以下配置:

fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /home/www/scripts/php$fastcgi_script_name;

SCRIPT_FILENAME將等於/home/www/scripts/php/info/index.php,但使用$request_filename它只是/home/www/scripts/php/info/

的配置也fastcgi_split_path_info很重要。請參閱此處獲取更多幫助: http: //nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_split_path_info

引用自:https://serverfault.com/questions/465607