Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
nginx try\u files指令中的多个PHP文件_Php_Nginx_Vhosts - Fatal编程技术网

nginx try\u files指令中的多个PHP文件

nginx try\u files指令中的多个PHP文件,php,nginx,vhosts,Php,Nginx,Vhosts,早上好, 我想制作相同的nginx vhost,它可以与不同的php应用程序(symfony和Thelia)一起工作。 我的问题在于try_files指令。在symfony中,try_文件的目标必须是app.php,但在Thelia中,try_文件的目标必须是index.php。 因此,我想修改try_files语句,如下所示: server { listen 80; server_name *.tld; root /var/www/web; location

早上好, 我想制作相同的nginx vhost,它可以与不同的php应用程序(symfony和Thelia)一起工作。 我的问题在于try_files指令。在symfony中,try_文件的目标必须是app.php,但在Thelia中,try_文件的目标必须是index.php。 因此,我想修改try_files语句,如下所示:

server {
    listen 80;
    server_name *.tld;

    root /var/www/web;

    location / {
        try_files $uri /app.php$is_args$args /index.php$is_args$args;
    }

    location ~ ^/(app|app_dev|config|index|index_dev)\.php(/|$) {
        fastcgi_pass php_alias:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param APP_ENV dev;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 256 16k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
    }

}

不幸的是,它不起作用。Php不再被解释。那么如何在try_files语句中注册多个php文件呢?

try_files指令只能有一个默认URI,它是最后一个元素,位于所有文件元素之后。您遇到的问题是,文件元素导致请求在当前
位置内处理。更多信息,请参阅

您可以使用命名的
位置
来处理可选的默认URI,例如:

location / {
    try_files $uri @rewrite;
}
location @rewrite {
    if (-f $document_root/app.php ) {
        rewrite ^ /app.php last;
    }
    rewrite ^ /index.php last;
}

请参阅使用
if

是否有特定的原因将给定的正则表达式用于PHP文件,而不是标准的
location~\.PHP(/|$)
?@IVOGELOV是的,我需要此特定配置,但我看不到与try\u文件的关系。