nginx:使用 error_page 处理 404

nginx:使用 error_page 处理 404

最初,我在 nginx.conf 文件中有类似的内容。

location ^~ /test_api {
    types   { application/json json; }
    root    /usr/local/www/data;

    rewrite      "/test_api/(.*)"   /api_response/test_api_$1.json            break;
    error_page   404                /api_response/unknown_request.json;
}

当本地找不到请求的资源时,会正确返回unknown_request.json(默认响应)。

然后我必须更改重写以指向远程服务器,如下所示:

    rewrite      "/test_api/(.*)"   $scheme://www.somedomain.com/test_api_$1  break;

即使远程服务器返回 404,它也不再返回 unknown_request.json(默认响应)。

当远程服务器返回 404 时,有没有办法继续向客户端返回 unknown_request.json(假设远程服务器无法更改为返回 unknown_request.json)?

非常感谢。

答案1

您已将请求重定向到远程站点;您无法再对其进行控制。浏览器将联系远程站点并获取其获得的任何响应。

相关内容