Nginx 返回其他代码

Nginx 返回其他代码

我允许几个 IP 访问该页面,allow x.x.x.x然后在下面显示我当前正在使用的deny allIP,这样就可以正常工作。但是,它目前显示 403,这是应该的,但我可以将其更改为显示我选择的其他代码吗?(例如,对于不在允许列表中的人,显示 404)我也测试过,return 404但是它似乎不听从允许设置,只是为每个请求返回它。

答案1

文档error_page说:

此外,可以使用“=response”语法将响应代码更改为另一个,例如:

error_page 404 =200 /empty.gif;

因此,就你的情况而言,即:

error_page 403 =404 /404.html

因此,这种缺点是必须创建/复制404.html

但是,您可能想要添加内部位置:

location = /404.html {
    internal;
    return 404;
}

这样,您应该会得到默认的 NGINX 404 输出,而无需复制/创建任何额外的错误 HTML 文件。

相关内容