Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.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
Php nginx,如何为所有静态文件提供服务并将所有其他流量转发给fastcgi_Php_Nginx_Fastcgi - Fatal编程技术网

Php nginx,如何为所有静态文件提供服务并将所有其他流量转发给fastcgi

Php nginx,如何为所有静态文件提供服务并将所有其他流量转发给fastcgi,php,nginx,fastcgi,Php,Nginx,Fastcgi,我想直接为所有现存的文件提供服务(除了.php文件) 其余的请求(不仅仅是.php)将它们转发到fastcgi服务器 我可以通过以下方式将所有.php文件重定向到fastcgi: location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; } 并为其他静态文件提供: location / { } 但我想首先提供“所有存在且不以.php结尾的静态文件” 然后,向fastcgi提供“所有其他请

我想直接为所有现存的文件提供服务(除了.php文件)

其余的请求(不仅仅是.php)将它们转发到fastcgi服务器

我可以通过以下方式将所有.php文件重定向到fastcgi:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
}
并为其他静态文件提供:

location / {
}
但我想首先提供“所有存在且不以.php结尾的静态文件” 然后,向fastcgi提供“所有其他请求”(不必以php结尾)

有什么想法可以实现吗

谢谢

你可以用它

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

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;

    // other CGI parameters
}

确保您知道常见的。

不工作,我需要区分.php文件仍然不工作,index.php工作正常,现有文件(如.jpg)工作正常,但与任何现有文件不匹配的路由没有转发到fastcgi:404 not Found,似乎已用:location/{try_files$uri$uri//index.php?$args;}我不确定您是否使用的是front controller,因此尝试使其更通用。更新了答案。谢谢!耐心是一种美德:-)