mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 14:21:25 +02:00
MINOR: http: Add 404 to http-request deny
This patch adds http status code 404 Not Found to http-request deny. See issue #80.
This commit is contained in:
parent
272e29b5cc
commit
9205fea13a
@ -373,6 +373,7 @@ HAProxy may emit the following status codes by itself :
|
|||||||
401 when an authentication is required to perform the action (when
|
401 when an authentication is required to perform the action (when
|
||||||
accessing the stats page)
|
accessing the stats page)
|
||||||
403 when a request is forbidden by a "http-request deny" rule
|
403 when a request is forbidden by a "http-request deny" rule
|
||||||
|
404 when the requested resource could not be found
|
||||||
408 when the request timeout strikes before the request is complete
|
408 when the request timeout strikes before the request is complete
|
||||||
410 when the requested resource is no longer available and will not
|
410 when the requested resource is no longer available and will not
|
||||||
be available again
|
be available again
|
||||||
@ -3607,8 +3608,8 @@ errorfile <code> <file>
|
|||||||
yes | yes | yes | yes
|
yes | yes | yes | yes
|
||||||
Arguments :
|
Arguments :
|
||||||
<code> is the HTTP status code. Currently, HAProxy is capable of
|
<code> is the HTTP status code. Currently, HAProxy is capable of
|
||||||
generating codes 200, 400, 403, 405, 408, 410, 425, 429, 500, 502,
|
generating codes 200, 400, 403, 404, 405, 408, 410, 425, 429, 500,
|
||||||
503, and 504.
|
502, 503, and 504.
|
||||||
|
|
||||||
<file> designates a file containing the full HTTP response. It is
|
<file> designates a file containing the full HTTP response. It is
|
||||||
recommended to follow the common practice of appending ".http" to
|
recommended to follow the common practice of appending ".http" to
|
||||||
@ -3656,8 +3657,8 @@ errorloc302 <code> <url>
|
|||||||
yes | yes | yes | yes
|
yes | yes | yes | yes
|
||||||
Arguments :
|
Arguments :
|
||||||
<code> is the HTTP status code. Currently, HAProxy is capable of
|
<code> is the HTTP status code. Currently, HAProxy is capable of
|
||||||
generating codes 200, 400, 403, 405, 408, 410, 425, 429, 500, 502,
|
generating codes 200, 400, 403, 404, 405, 408, 410, 425, 429, 500,
|
||||||
503, and 504.
|
502, 503, and 504.
|
||||||
|
|
||||||
<url> it is the exact contents of the "Location" header. It may contain
|
<url> it is the exact contents of the "Location" header. It may contain
|
||||||
either a relative URI to an error page hosted on the same site,
|
either a relative URI to an error page hosted on the same site,
|
||||||
@ -3688,8 +3689,8 @@ errorloc303 <code> <url>
|
|||||||
yes | yes | yes | yes
|
yes | yes | yes | yes
|
||||||
Arguments :
|
Arguments :
|
||||||
<code> is the HTTP status code. Currently, HAProxy is capable of
|
<code> is the HTTP status code. Currently, HAProxy is capable of
|
||||||
generating codes 200, 400, 403, 405, 408, 410, 425, 429, 500, 502,
|
generating codes 200, 400, 403, 404, 405, 408, 410, 425, 429, 500,
|
||||||
503, and 504.
|
502, 503, and 504.
|
||||||
|
|
||||||
<url> it is the exact contents of the "Location" header. It may contain
|
<url> it is the exact contents of the "Location" header. It may contain
|
||||||
either a relative URI to an error page hosted on the same site,
|
either a relative URI to an error page hosted on the same site,
|
||||||
|
@ -83,6 +83,7 @@ enum {
|
|||||||
HTTP_ERR_200 = 0,
|
HTTP_ERR_200 = 0,
|
||||||
HTTP_ERR_400,
|
HTTP_ERR_400,
|
||||||
HTTP_ERR_403,
|
HTTP_ERR_403,
|
||||||
|
HTTP_ERR_404,
|
||||||
HTTP_ERR_405,
|
HTTP_ERR_405,
|
||||||
HTTP_ERR_408,
|
HTTP_ERR_408,
|
||||||
HTTP_ERR_410,
|
HTTP_ERR_410,
|
||||||
|
11
src/http.c
11
src/http.c
@ -216,6 +216,7 @@ const int http_err_codes[HTTP_ERR_SIZE] = {
|
|||||||
[HTTP_ERR_200] = 200, /* used by "monitor-uri" */
|
[HTTP_ERR_200] = 200, /* used by "monitor-uri" */
|
||||||
[HTTP_ERR_400] = 400,
|
[HTTP_ERR_400] = 400,
|
||||||
[HTTP_ERR_403] = 403,
|
[HTTP_ERR_403] = 403,
|
||||||
|
[HTTP_ERR_404] = 404,
|
||||||
[HTTP_ERR_405] = 405,
|
[HTTP_ERR_405] = 405,
|
||||||
[HTTP_ERR_408] = 408,
|
[HTTP_ERR_408] = 408,
|
||||||
[HTTP_ERR_410] = 410,
|
[HTTP_ERR_410] = 410,
|
||||||
@ -256,6 +257,15 @@ const char *http_err_msgs[HTTP_ERR_SIZE] = {
|
|||||||
"\r\n"
|
"\r\n"
|
||||||
"<html><body><h1>403 Forbidden</h1>\nRequest forbidden by administrative rules.\n</body></html>\n",
|
"<html><body><h1>403 Forbidden</h1>\nRequest forbidden by administrative rules.\n</body></html>\n",
|
||||||
|
|
||||||
|
[HTTP_ERR_404] =
|
||||||
|
"HTTP/1.1 404 Not Found\r\n"
|
||||||
|
"Content-length: 83\r\n"
|
||||||
|
"Cache-Control: no-cache\r\n"
|
||||||
|
"Connection: close\r\n"
|
||||||
|
"Content-Type: text/html\r\n"
|
||||||
|
"\r\n"
|
||||||
|
"<html><body><h1>404 Not Found</h1>\nThe resource could not be found.\n</body></html>\n",
|
||||||
|
|
||||||
[HTTP_ERR_405] =
|
[HTTP_ERR_405] =
|
||||||
"HTTP/1.1 405 Method Not Allowed\r\n"
|
"HTTP/1.1 405 Method Not Allowed\r\n"
|
||||||
"Content-length: 146\r\n"
|
"Content-length: 146\r\n"
|
||||||
@ -387,6 +397,7 @@ int http_get_status_idx(unsigned int status)
|
|||||||
case 200: return HTTP_ERR_200;
|
case 200: return HTTP_ERR_200;
|
||||||
case 400: return HTTP_ERR_400;
|
case 400: return HTTP_ERR_400;
|
||||||
case 403: return HTTP_ERR_403;
|
case 403: return HTTP_ERR_403;
|
||||||
|
case 404: return HTTP_ERR_404;
|
||||||
case 405: return HTTP_ERR_405;
|
case 405: return HTTP_ERR_405;
|
||||||
case 408: return HTTP_ERR_408;
|
case 408: return HTTP_ERR_408;
|
||||||
case 410: return HTTP_ERR_410;
|
case 410: return HTTP_ERR_410;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user