custom error pages for retun directive

kay nginx-forum at nginx.us
Tue Aug 26 08:48:41 UTC 2014


It is not possible to set custom error page. For example
/usr/share/nginx/404.html contains "test":

server {
error_page 404 /404.html;

if ($request_method = "GET") 
return 404;
}

location / {
proxy_pass http://localhost:8080;
}

location /404.html {
/usr/share/nginx/404.html;
}
}


curl -v 127.0.0.1
* About to connect() to 127.0.0.1 port 80 (#0)
*   Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7
NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 127.0.0.1
> Accept: */*
> 
< HTTP/1.1 404 Not Found
< Server: nginx
< Date: Tue, 26 Aug 2014 08:45:26 GMT
< Content-Type: text/html
< Content-Length: 162
< Connection: keep-alive
< Keep-Alive: timeout=20
< 
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0

But if I'll make rewrite rule:

server {
error_page 404 /404.html;

if ($request_method = "GET") 
rewrite ^ /404.html last;
}

location / {
proxy_pass http://localhost:8080;
}

location /404.html {
/usr/share/nginx/404.html;
}
}

I'll get:

curl -v 127.0.0.1
* About to connect() to 127.0.0.1 port 80 (#0)
*   Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7
NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 127.0.0.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Server: nginx
< Date: Tue, 26 Aug 2014 08:46:25 GMT
< Content-Type: text/html
< Content-Length: 5
< Last-Modified: Tue, 26 Aug 2014 08:42:47 GMT
< Connection: keep-alive
< Keep-Alive: timeout=20
< ETag: "53fc4887-5"
< Accept-Ranges: bytes
< 
test
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0

But I'll get 200 OK.

Is it possible to get cutsom 404 error page with 404 error code using
"return 404" directive?

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,252825,252825#msg-252825



More information about the nginx mailing list