首页 > 解决方案 > 如何使用 try_files 绕过 404 HTTP 错误

问题描述

我想通过某种静态内容而不是 404 页面来解析对客户端的 HTTP 错误代码 404(未找到)响应。这可以通过后备方案、使用try_files并向客户端响应 HTTP 200 来完成吗?

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

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

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

通过这种配置是否可行?

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

标签: nginxnginx-config

解决方案


推荐阅读