comparison src/http/ngx_http_special_response.c @ 48:6cfc63e68377 NGINX_0_1_24

nginx 0.1.24 *) Feature: the ngx_http_ssi_filter_module supports the QUERY_STRING and DOCUMENT_URI variables. *) Bugfix: the ngx_http_autoindex_module may some times return the 404 response for existent directory, if this directory was used in "alias" directive. *) Bugfix: the ngx_http_ssi_filter_module ran incorrectly for large responses. *) Bugfix: the lack of the "Referer" header line was always accounted as valid referrer.
author Igor Sysoev <http://sysoev.ru>
date Fri, 04 Mar 2005 00:00:00 +0300
parents a39d1b793287
children 72eb30262aac
comparison
equal deleted inserted replaced
47:4ae32548452c 48:6cfc63e68377
49 "<body bgcolor=\"white\">" CRLF 49 "<body bgcolor=\"white\">" CRLF
50 "<center><h1>400 Bad Request</h1></center>" CRLF 50 "<center><h1>400 Bad Request</h1></center>" CRLF
51 ; 51 ;
52 52
53 53
54 static char error_401_page[] =
55 "<html>" CRLF
56 "<head><title>401 Unauthorized</title></head>" CRLF
57 "<body bgcolor=\"white\">" CRLF
58 "<center><h1>401 Unauthorized</h1></center>" CRLF
59 ;
60
61
62 static char error_402_page[] =
63 "<html>" CRLF
64 "<head><title>402 Payment Required</title></head>" CRLF
65 "<body bgcolor=\"white\">" CRLF
66 "<center><h1>402 Payment Required</h1></center>" CRLF
67 ;
68
69
54 static char error_403_page[] = 70 static char error_403_page[] =
55 "<html>" CRLF 71 "<html>" CRLF
56 "<head><title>403 Forbidden</title></head>" CRLF 72 "<head><title>403 Forbidden</title></head>" CRLF
57 "<body bgcolor=\"white\">" CRLF 73 "<body bgcolor=\"white\">" CRLF
58 "<center><h1>403 Forbidden</h1></center>" CRLF 74 "<center><h1>403 Forbidden</h1></center>" CRLF
73 "<body bgcolor=\"white\">" CRLF 89 "<body bgcolor=\"white\">" CRLF
74 "<center><h1>405 Not Allowed</h1></center>" CRLF 90 "<center><h1>405 Not Allowed</h1></center>" CRLF
75 ; 91 ;
76 92
77 93
94 static char error_406_page[] =
95 "<html>" CRLF
96 "<head><title>406 Not Acceptable</title></head>" CRLF
97 "<body bgcolor=\"white\">" CRLF
98 "<center><h1>406 Not Acceptable</h1></center>" CRLF
99 ;
100
101
78 static char error_408_page[] = 102 static char error_408_page[] =
79 "<html>" CRLF 103 "<html>" CRLF
80 "<head><title>408 Request Time-out</title></head>" CRLF 104 "<head><title>408 Request Time-out</title></head>" CRLF
81 "<body bgcolor=\"white\">" CRLF 105 "<body bgcolor=\"white\">" CRLF
82 "<center><h1>408 Request Time-out</h1></center>" CRLF 106 "<center><h1>408 Request Time-out</h1></center>" CRLF
107 ;
108
109
110 static char error_410_page[] =
111 "<html>" CRLF
112 "<head><title>410 Gone</title></head>" CRLF
113 "<body bgcolor=\"white\">" CRLF
114 "<center><h1>410 Gone</h1></center>" CRLF
83 ; 115 ;
84 116
85 117
86 static char error_413_page[] = 118 static char error_413_page[] =
87 "<html>" CRLF 119 "<html>" CRLF
156 "<center><h1>504 Gateway Time-out</h1></center>" CRLF 188 "<center><h1>504 Gateway Time-out</h1></center>" CRLF
157 ; 189 ;
158 190
159 191
160 static ngx_str_t error_pages[] = { 192 static ngx_str_t error_pages[] = {
161 /* ngx_null_string, */ /* 300 */ 193
194 /* ngx_null_string, */ /* 300 */
162 ngx_string(error_301_page), 195 ngx_string(error_301_page),
163 ngx_string(error_302_page), 196 ngx_string(error_302_page),
164 ngx_null_string, /* 303 */ 197 ngx_null_string, /* 303 */
165 198
199 #define NGX_HTTP_LEVEL_300 3
200
166 ngx_string(error_400_page), 201 ngx_string(error_400_page),
167 ngx_null_string, /* 401 */ 202 ngx_string(error_401_page),
168 ngx_null_string, /* 402 */ 203 ngx_string(error_402_page),
169 ngx_string(error_403_page), 204 ngx_string(error_403_page),
170 ngx_string(error_404_page), 205 ngx_string(error_404_page),
171 ngx_string(error_405_page), 206 ngx_string(error_405_page),
172 ngx_null_string, /* 406 */ 207 ngx_string(error_406_page),
173 ngx_null_string, /* 407 */ 208 ngx_null_string, /* 407 */
174 ngx_string(error_408_page), 209 ngx_string(error_408_page),
175 ngx_null_string, /* 409 */ 210 ngx_null_string, /* 409 */
176 ngx_null_string, /* 410 */ 211 ngx_string(error_410_page),
177 ngx_null_string, /* 411 */ 212 ngx_null_string, /* 411 */
178 ngx_null_string, /* 412 */ 213 ngx_null_string, /* 412 */
179 ngx_string(error_413_page), 214 ngx_string(error_413_page),
180 ngx_string(error_414_page), 215 ngx_string(error_414_page),
181 ngx_null_string, /* 415 */ 216 ngx_null_string, /* 415 */
182 ngx_string(error_416_page), 217 ngx_string(error_416_page),
183 218
219 #define NGX_HTTP_LEVEL_400 17
220
184 ngx_string(error_497_page), /* 497, http to https */ 221 ngx_string(error_497_page), /* 497, http to https */
185 ngx_string(error_404_page), /* 498, invalid host name */ 222 ngx_string(error_404_page), /* 498, invalid host name */
186 ngx_null_string, /* 499, client closed connection */ 223 ngx_null_string, /* 499, client had closed connection */
187 224
188 ngx_string(error_500_page), 225 ngx_string(error_500_page),
189 ngx_string(error_501_page), 226 ngx_string(error_501_page),
190 ngx_string(error_502_page), 227 ngx_string(error_502_page),
191 ngx_string(error_503_page), 228 ngx_string(error_503_page),
257 /* 3XX */ 294 /* 3XX */
258 err = error - NGX_HTTP_MOVED_PERMANENTLY; 295 err = error - NGX_HTTP_MOVED_PERMANENTLY;
259 296
260 } else if (error < NGX_HTTP_NGX_CODES) { 297 } else if (error < NGX_HTTP_NGX_CODES) {
261 /* 4XX */ 298 /* 4XX */
262 err = error - NGX_HTTP_BAD_REQUEST + 3; 299 err = error - NGX_HTTP_BAD_REQUEST + NGX_HTTP_LEVEL_300;
263 300
264 } else { 301 } else {
265 /* 49X, 5XX */ 302 /* 49X, 5XX */
266 err = error - NGX_HTTP_NGX_CODES + 3 + 17; 303 err = error - NGX_HTTP_NGX_CODES + NGX_HTTP_LEVEL_300
267 304 + NGX_HTTP_LEVEL_400;
268 switch (error) { 305 switch (error) {
269 case NGX_HTTP_TO_HTTPS: 306 case NGX_HTTP_TO_HTTPS:
270 r->headers_out.status = NGX_HTTP_BAD_REQUEST; 307 r->headers_out.status = NGX_HTTP_BAD_REQUEST;
271 error = NGX_HTTP_BAD_REQUEST; 308 error = NGX_HTTP_BAD_REQUEST;
272 break; 309 break;