nginx,如何提供所有静态文件并将所有其他流量转发到fastcgi

时间:2014-10-31 19:45:00

标签: php nginx fastcgi

我想直接提供所有现有文件(.php文件除外)

剩下的所有请求(不仅是.php),将它们转发到fastcgi服务器。

我可以使用以下命令将所有.php文件重定向到fastcgi:

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

使用以下命令提供其他静态文件:

location / {
}

但我想先发布“所有存在的静态文件,不要以.php结尾” 然后,将“所有其他请求”(不必以php结尾)发送到fastcgi,

有任何想法要完成它吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用try_files

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
}

确保您了解常见的pitfalls