NGINX try_文件不执行脚本

NGINX try_文件不执行脚本,nginx,nginx-config,Nginx,Nginx Config,你好,我在Nginx配置文件中有这个 location ~* ^/storage/(.+)$ { try_files $uri

你好,我在Nginx配置文件中有这个

location ~* ^/storage/(.+)$ {
        try_files $uri                                                                                                                                                                                                                                         
                  /thumb.php?$query_string
                  /images/no-photo.jpg;
    }
我想检查存储文件夹中是否存在图像。如果没有,请运行thumb生成脚本,如果thumb.php找到原始图像,则返回图像。如果没有原始图像,我希望Nginx返回no-photo.jpg

但是在这种配置中,Nginx跳过thumb.php,只显示no-photo.jpg而不运行脚本


当我删除最后一部分“/images/no photo.jpg”时,thumb.php已经运行。

对于您需求的第二部分,您可以检查thumb.php的响应,并在404状态下返回jpeg

例如:

location /storage/ {
    try_files $uri /thumb.php?$args;
}
location = /thumb.php {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    fastcgi_pass ...;

    fastcgi_intercept_errors on;
    error_page 404 =200 /images/no-photo.jpg;
}

有关详细信息,请参见。

对于需求的第二部分,您可以从
thumb.php
检查响应,并在状态404上返回jpeg

例如:

location /storage/ {
    try_files $uri /thumb.php?$args;
}
location = /thumb.php {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    fastcgi_pass ...;

    fastcgi_intercept_errors on;
    error_page 404 =200 /images/no-photo.jpg;
}

有关详细信息,请参阅。

Nginx如何测试“如果没有原始图像”?你能从
$uri
构建到原始图像的路径吗,或者
thumb.php
是否返回404状态?是的,我能从$uri构建原始图像路径,如果thumb.php找不到图像,它返回404状态Nginx如何测试“如果没有原始图像”?您可以从
$uri
构建到原始图像的路径吗,或者
thumb.php
是否返回404状态?是的,我可以从$uri构建原始图像路径,如果thumb.php找不到图像,它将返回404状态