diff src/http/ngx_http_special_response.c @ 335:d4241d7787fe

nginx-0.0.3-2004-05-14-20:51:47 import
author Igor Sysoev <igor@sysoev.ru>
date Fri, 14 May 2004 16:51:47 +0000
parents f168a88e93f7
children 6bdf858bff8c
line wrap: on
line diff
--- a/src/http/ngx_http_special_response.c
+++ b/src/http/ngx_http_special_response.c
@@ -166,6 +166,9 @@ static ngx_str_t error_pages[] = {
     ngx_null_string,             /* 415 */
     ngx_string(error_416_page),
 
+    ngx_string(error_404_page),  /* 498 */
+    ngx_null_string,             /* 499 */
+
     ngx_string(error_500_page),
     ngx_string(error_501_page),
     ngx_string(error_502_page),
@@ -229,13 +232,20 @@ int ngx_http_special_response_handler(ng
         /* 3XX */
         err = error - NGX_HTTP_MOVED_PERMANENTLY;
 
-    } else if (error < NGX_HTTP_INTERNAL_SERVER_ERROR) {
+    } else if (error < NGX_HTTP_NGX_CODES) {
         /* 4XX */
         err = error - NGX_HTTP_BAD_REQUEST + 3;
 
     } else {
-        /* 5XX */
-        err = error - NGX_HTTP_INTERNAL_SERVER_ERROR + 3 + 17;
+        /* 49X, 5XX */
+        err = error - NGX_HTTP_NGX_CODES + 3 + 17;
+
+        switch (error) {
+            case NGX_HTTP_INVALID_HOST:
+                r->headers_out.status = NGX_HTTP_NOT_FOUND;
+                error = NGX_HTTP_NOT_FOUND;
+                break;
+        }
     }
 
     if (error_pages[err].len) {