Nginx 如何检索try_files指令中使用的目录?

Nginx 如何检索try_files指令中使用的目录?,nginx,Nginx,我很难弄清楚try_文件指令是如何工作的。 如果使用索引文件,此配置将按预期工作(http://domain.com/): 但是,如果我指定PHP脚本(index.PHP或其他),请尝试按预期查找文件,但请查看变量: X-Fcgi-Script-Name /index.php X-Script-Filename /var/www/index.php 所以我的问题是:如何找到try\u files指令选择的目录 使用的服务器配置: server { server_name ~^(

我很难弄清楚try_文件指令是如何工作的。 如果使用索引文件,此配置将按预期工作(http://domain.com/):

但是,如果我指定PHP脚本(index.PHP或其他),请尝试按预期查找文件,但请查看变量:

X-Fcgi-Script-Name  /index.php
X-Script-Filename   /var/www/index.php
所以我的问题是:如何找到try\u files指令选择的目录

使用的服务器配置

server {
    server_name  ~^(?P<domain>.+)$;
    root         /var/www;
    autoindex    off;
    index        index.php;


    try_files   /main_apps/$domain$uri/ /partners/$domain$uri/ =404;

    more_set_headers   "X-Script-Filename: $request_filename";
    more_set_headers   "X-Fcgi-Script-Name: $fastcgi_script_name";

    # Pass PHP scripts to PHP-FPM
    location ~ \.php$ {
        fastcgi_param  SCRIPT_FILENAME    $request_filename;
        include        php_fpm_params;
    }
}
服务器{
服务器名称^(?P.+)$;
root/var/www;
自动索引关闭;
index.php;
try_files/main_apps/$domain$uri//partners/$domain$uri/=404;
更多设置标题“X-Script-Filename:$request\u Filename”;
更多设置标题“X-Fcgi-Script-Name:$fastcgi\u Script\u Name”;
#将PHP脚本传递给PHP-FPM
位置~\.php${
fastcgi_参数脚本_文件名$request_文件名;
包括php_fpm_参数;
}
}
注意:Nginx I使用第三方模块编译

但是,如果我指定PHP脚本(index.PHP或其他),请尝试按预期查找文件

你错了。在本例中,您的请求由
location~\.php$
处理,其中没有try\u文件


顺便说一句,
server_name~ ^(?p.+)$太过分了。您应该使用。

谢谢您的提示。您在此处出错,请尝试成功查找文件,否则将导致404错误…但您在
location~\.php$
中没有
try\u文件。
server {
    server_name  ~^(?P<domain>.+)$;
    root         /var/www;
    autoindex    off;
    index        index.php;


    try_files   /main_apps/$domain$uri/ /partners/$domain$uri/ =404;

    more_set_headers   "X-Script-Filename: $request_filename";
    more_set_headers   "X-Fcgi-Script-Name: $fastcgi_script_name";

    # Pass PHP scripts to PHP-FPM
    location ~ \.php$ {
        fastcgi_param  SCRIPT_FILENAME    $request_filename;
        include        php_fpm_params;
    }
}