Nginx 如何使用try_文件绕过404 HTTP错误

Nginx 如何使用try_文件绕过404 HTTP错误,nginx,nginx-config,Nginx,Nginx Config,我希望通过使用某种静态内容来解析对客户端的HTTP错误代码404(未找到)响应,而不是使用404页面。这可以通过回退方案、使用try_文件并向客户端发送HTTP 200响应来实现吗 如果对/blahblah发出请求,第一个位置将首先获得请求,并尝试在/var/www/main目录中查找名为blahblah的文件 若请求找不到,它将通过搜索一个名为blahblah.html的文件来跟进。然后,它将尝试查看/var/www/main目录中是否有一个名为blahblah/的目录 如果所有这些尝试都失败

我希望通过使用某种静态内容来解析对客户端的HTTP错误代码404(未找到)响应,而不是使用404页面。这可以通过回退方案、使用try_文件并向客户端发送HTTP 200响应来实现吗

如果对/blahblah发出请求,第一个位置将首先获得请求,并尝试在/var/www/main目录中查找名为blahblah的文件

若请求找不到,它将通过搜索一个名为blahblah.html的文件来跟进。然后,它将尝试查看/var/www/main目录中是否有一个名为blahblah/的目录

如果所有这些尝试都失败,它将重定向到/fallback/index.html。这将触发另一个位置搜索,该搜索将被第二个位置块捕获。这将提供文件/var/www/other/fallback/index.html

采用这种配置是否可行

root /var/www/main;
location / {
    try_files $uri $uri.html $uri/ /fallback/index.html;
}
location /fallback {
    root /var/www/another;
}

一个选项是将404重定向到“自定义”错误页面:
error\u page 404/custom\u 404.html
但是这个重定向将不会有HTTP 200到客户端响应。我相信你可以这样覆盖它:
error\u page 404=200/custom.html。(抱歉,没有要测试的服务器)。编辑:包含在单据中;此外,还可以使用“=response”语法将响应代码更改为另一个代码……您的问题包含一个需求和一个完全有效的解决方案。除此之外,是的,您的配置很好,有问题吗?如果它有效,我可以继续关闭。