Mul*_*gno 19 nginx web-server fastcgi
如果在我的配置文件中设置,我不会注意到任何区别
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Run Code Online (Sandbox Code Playgroud)
或者:
fastcgi_param SCRIPT_FILENAME $request_filename;
Run Code Online (Sandbox Code Playgroud)
他们分别做什么?两者之一比另一个更好吗?
提前致谢。
Sim*_*ity 30
以下是文档中的内容:
此变量等于当前请求的文件路径,由指令 root 或 alias 和 URI 请求组成;
该变量等于当前请求的指令 root 的值;
此变量等于 URI 请求,或者,如果 URI 以正斜杠结尾,则 URI 请求加上 fastcgi_index 给出的索引文件的名称。可以使用此变量代替 SCRIPT_FILENAME 和 PATH_TRANSLATED,特别是用于确定 PHP 中脚本的名称。
正如这里所写的,使用fastcgi_index或fastcgi_split_path_info时至少有区别。也许还有更多……这就是我现在所知道的。
您收到请求/info/
并具有以下配置:
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
Run Code Online (Sandbox Code Playgroud)
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
Ste*_*ing 13
我推荐$request_filename
用于SCRIPT_FILENAME
.
root
指令$document_root$fastcgi_script_name
等于$request_filename
。
alias
指令$document_root$fastcgi_script_name
将返回错误的路径,因为$fastcgi_script_name
是 URL 的路径,而不是与$document_root
.
如果你有配置
location /api/ {
index index.php index.html index.htm;
alias /app/www/;
location ~* "\.php$" {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
Run Code Online (Sandbox Code Playgroud)
/api/testing.php
:$document_root$fastcgi_script_name
== /app/www//api/testing.php
$request_filename
== /app/www/testing.php
/api/
:$document_root$fastcgi_script_name
== /app/www//api/index.php
$request_filename
== /app/www/index.php
如果您使用$request_filename
,您应该使用index
指令设置索引,fastcgi_index
将不起作用。
归档时间: |
|
查看次数: |
54667 次 |
最近记录: |