mirror of
https://github.com/nginx/nginx.git
synced 2024-12-01 03:17:17 +08:00
Added support for the "308 Permanent Redirect" (ticket #877).
This commit is contained in:
parent
a965e1d766
commit
8ee2de5e9c
@ -173,6 +173,7 @@ ngx_http_headers_filter(ngx_http_request_t *r)
|
|||||||
case NGX_HTTP_SEE_OTHER:
|
case NGX_HTTP_SEE_OTHER:
|
||||||
case NGX_HTTP_NOT_MODIFIED:
|
case NGX_HTTP_NOT_MODIFIED:
|
||||||
case NGX_HTTP_TEMPORARY_REDIRECT:
|
case NGX_HTTP_TEMPORARY_REDIRECT:
|
||||||
|
case NGX_HTTP_PERMANENT_REDIRECT:
|
||||||
safe_status = 1;
|
safe_status = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ our @EXPORT = qw(
|
|||||||
HTTP_SEE_OTHER
|
HTTP_SEE_OTHER
|
||||||
HTTP_NOT_MODIFIED
|
HTTP_NOT_MODIFIED
|
||||||
HTTP_TEMPORARY_REDIRECT
|
HTTP_TEMPORARY_REDIRECT
|
||||||
|
HTTP_PERMANENT_REDIRECT
|
||||||
|
|
||||||
HTTP_BAD_REQUEST
|
HTTP_BAD_REQUEST
|
||||||
HTTP_UNAUTHORIZED
|
HTTP_UNAUTHORIZED
|
||||||
@ -72,6 +73,7 @@ use constant HTTP_REDIRECT => 302;
|
|||||||
use constant HTTP_SEE_OTHER => 303;
|
use constant HTTP_SEE_OTHER => 303;
|
||||||
use constant HTTP_NOT_MODIFIED => 304;
|
use constant HTTP_NOT_MODIFIED => 304;
|
||||||
use constant HTTP_TEMPORARY_REDIRECT => 307;
|
use constant HTTP_TEMPORARY_REDIRECT => 307;
|
||||||
|
use constant HTTP_PERMANENT_REDIRECT => 308;
|
||||||
|
|
||||||
use constant HTTP_BAD_REQUEST => 400;
|
use constant HTTP_BAD_REQUEST => 400;
|
||||||
use constant HTTP_UNAUTHORIZED => 401;
|
use constant HTTP_UNAUTHORIZED => 401;
|
||||||
|
@ -1894,7 +1894,8 @@ ngx_http_send_response(ngx_http_request_t *r, ngx_uint_t status,
|
|||||||
if (status == NGX_HTTP_MOVED_PERMANENTLY
|
if (status == NGX_HTTP_MOVED_PERMANENTLY
|
||||||
|| status == NGX_HTTP_MOVED_TEMPORARILY
|
|| status == NGX_HTTP_MOVED_TEMPORARILY
|
||||||
|| status == NGX_HTTP_SEE_OTHER
|
|| status == NGX_HTTP_SEE_OTHER
|
||||||
|| status == NGX_HTTP_TEMPORARY_REDIRECT)
|
|| status == NGX_HTTP_TEMPORARY_REDIRECT
|
||||||
|
|| status == NGX_HTTP_PERMANENT_REDIRECT)
|
||||||
{
|
{
|
||||||
ngx_http_clear_location(r);
|
ngx_http_clear_location(r);
|
||||||
|
|
||||||
|
@ -75,8 +75,9 @@ static ngx_str_t ngx_http_status_lines[] = {
|
|||||||
ngx_null_string, /* "305 Use Proxy" */
|
ngx_null_string, /* "305 Use Proxy" */
|
||||||
ngx_null_string, /* "306 unused" */
|
ngx_null_string, /* "306 unused" */
|
||||||
ngx_string("307 Temporary Redirect"),
|
ngx_string("307 Temporary Redirect"),
|
||||||
|
ngx_string("308 Permanent Redirect"),
|
||||||
|
|
||||||
#define NGX_HTTP_LAST_3XX 308
|
#define NGX_HTTP_LAST_3XX 309
|
||||||
#define NGX_HTTP_OFF_4XX (NGX_HTTP_LAST_3XX - 301 + NGX_HTTP_OFF_3XX)
|
#define NGX_HTTP_OFF_4XX (NGX_HTTP_LAST_3XX - 301 + NGX_HTTP_OFF_3XX)
|
||||||
|
|
||||||
ngx_string("400 Bad Request"),
|
ngx_string("400 Bad Request"),
|
||||||
|
@ -83,6 +83,7 @@
|
|||||||
#define NGX_HTTP_SEE_OTHER 303
|
#define NGX_HTTP_SEE_OTHER 303
|
||||||
#define NGX_HTTP_NOT_MODIFIED 304
|
#define NGX_HTTP_NOT_MODIFIED 304
|
||||||
#define NGX_HTTP_TEMPORARY_REDIRECT 307
|
#define NGX_HTTP_TEMPORARY_REDIRECT 307
|
||||||
|
#define NGX_HTTP_PERMANENT_REDIRECT 308
|
||||||
|
|
||||||
#define NGX_HTTP_BAD_REQUEST 400
|
#define NGX_HTTP_BAD_REQUEST 400
|
||||||
#define NGX_HTTP_UNAUTHORIZED 401
|
#define NGX_HTTP_UNAUTHORIZED 401
|
||||||
|
@ -89,6 +89,14 @@ static char ngx_http_error_307_page[] =
|
|||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
static char ngx_http_error_308_page[] =
|
||||||
|
"<html>" CRLF
|
||||||
|
"<head><title>308 Permanent Redirect</title></head>" CRLF
|
||||||
|
"<body bgcolor=\"white\">" CRLF
|
||||||
|
"<center><h1>308 Permanent Redirect</h1></center>" CRLF
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
static char ngx_http_error_400_page[] =
|
static char ngx_http_error_400_page[] =
|
||||||
"<html>" CRLF
|
"<html>" CRLF
|
||||||
"<head><title>400 Bad Request</title></head>" CRLF
|
"<head><title>400 Bad Request</title></head>" CRLF
|
||||||
@ -336,8 +344,9 @@ static ngx_str_t ngx_http_error_pages[] = {
|
|||||||
ngx_null_string, /* 305 */
|
ngx_null_string, /* 305 */
|
||||||
ngx_null_string, /* 306 */
|
ngx_null_string, /* 306 */
|
||||||
ngx_string(ngx_http_error_307_page),
|
ngx_string(ngx_http_error_307_page),
|
||||||
|
ngx_string(ngx_http_error_308_page),
|
||||||
|
|
||||||
#define NGX_HTTP_LAST_3XX 308
|
#define NGX_HTTP_LAST_3XX 309
|
||||||
#define NGX_HTTP_OFF_4XX (NGX_HTTP_LAST_3XX - 301 + NGX_HTTP_OFF_3XX)
|
#define NGX_HTTP_OFF_4XX (NGX_HTTP_LAST_3XX - 301 + NGX_HTTP_OFF_3XX)
|
||||||
|
|
||||||
ngx_string(ngx_http_error_400_page),
|
ngx_string(ngx_http_error_400_page),
|
||||||
@ -615,7 +624,8 @@ ngx_http_send_error_page(ngx_http_request_t *r, ngx_http_err_page_t *err_page)
|
|||||||
if (overwrite != NGX_HTTP_MOVED_PERMANENTLY
|
if (overwrite != NGX_HTTP_MOVED_PERMANENTLY
|
||||||
&& overwrite != NGX_HTTP_MOVED_TEMPORARILY
|
&& overwrite != NGX_HTTP_MOVED_TEMPORARILY
|
||||||
&& overwrite != NGX_HTTP_SEE_OTHER
|
&& overwrite != NGX_HTTP_SEE_OTHER
|
||||||
&& overwrite != NGX_HTTP_TEMPORARY_REDIRECT)
|
&& overwrite != NGX_HTTP_TEMPORARY_REDIRECT
|
||||||
|
&& overwrite != NGX_HTTP_PERMANENT_REDIRECT)
|
||||||
{
|
{
|
||||||
r->err_status = NGX_HTTP_MOVED_TEMPORARILY;
|
r->err_status = NGX_HTTP_MOVED_TEMPORARILY;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user