error_page 指令

语 法:error_page code ... [=[response]] uri;

默认值:

上下文:http, server, location, if in location

定义针对指定错误显示的 URI,URI 的值可以包含变量。例如:

error_page 404             /404.html;
error_page 500 502 503 504 /50x.html;

这会导致内部重定向到指定的 uri,客户端请求方法更改为“GET”(对于“GET”和“HEAD”以外的所有方法)。

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

error_page 404 =200 /empty.gif;

如果错误响应由代理服务器或 FastCGI/uwsgi/SCGI/gRPC 服务器处理,并且服务器可能返回不同的响应代码(例如,200、302、401 或 404),则可以使用它的代码进行响应返回:

error_page 404 = /404.php;

如果在内部重定向期间不需要更改 URI 和方法,则可以将错误处理传递到命名 location:

location / {
    error_page 404 = @fallback;
}

location @fallback {
    proxy_pass http://backend;
}

如果 uri 处理导致错误,则将上次发生错误的状态码返回给客户端。

也可以使用 URL 重定向进行错误处理:

error_page 403      http://example.com/forbidden.html;
error_page 404 =301 http://example.com/notfound.html;

在这种情况下,默认情况下,响应代码 302 会返回给客户端。它只能更改为重定向状态代码之一(301、302、303、307 和 308)。

代码 307 直到版本 1.1.16 和 1.0.13 才被视为重定向。

代码 308 直到版本 1.13.0 才被视为重定向。

当且仅当当前级别上没有定义 error_page 指令时,这些指令才从先前的配置级别继承。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号