Syntax: | error_page
|
---|---|
Default: | — |
Context: | http , server , location , if in location |
Defines the URI that will be shown for the specified errors. A uri
value can contain variables.
Example:
error_page 404 /404.html; error_page 500 502 503 504 /50x.html;
This causes an internal redirect to the specified uri
with the client request method changed to “GET
” (for all methods other than “GET
” and “HEAD
”).
Furthermore, it is possible to change the response code to another using the “=
response
” syntax, for example:
error_page 404 =200 /empty.gif;
If an error response is processed by a proxied server or a FastCGI/uwsgi/SCGI server, and the server may return different response codes (e.g., 200, 302, 401 or 404), it is possible to respond with the code it returns:
error_page 404 = /404.php;
If there is no need to change URI and method during internal redirection it is possible to pass error processing into a named location:
location / { error_page 404 = @fallback; } location @fallback { proxy_pass http://backend; }
If uri
processing leads to an error, the status code of the last occurred error is returned to the client.
It is also possible to use URL redirects for error processing:
error_page 403 http://example.com/forbidden.html; error_page 404 =301 http://example.com/notfound.html;
In this case, by default, the response code 302 is returned to the client. It can only be changed to one of the redirect status codes (301, 302, 303, and 307).
These directives are inherited from the previous level if and only if there are no error_page
directives defined on the current level.
Please login to continue.