diff --git a/internal/nodes/http_request_host_redirect.go b/internal/nodes/http_request_host_redirect.go index 8672a44..82a7c2d 100644 --- a/internal/nodes/http_request_host_redirect.go +++ b/internal/nodes/http_request_host_redirect.go @@ -34,8 +34,10 @@ func (this *HTTPRequest) doHostRedirect() (blocked bool) { } if u.Status <= 0 { + this.processResponseHeaders(http.StatusTemporaryRedirect) http.Redirect(this.RawWriter, this.RawReq, afterURL, http.StatusTemporaryRedirect) } else { + this.processResponseHeaders(u.Status) http.Redirect(this.RawWriter, this.RawReq, afterURL, u.Status) } return true @@ -72,8 +74,10 @@ func (this *HTTPRequest) doHostRedirect() (blocked bool) { } if u.Status <= 0 { + this.processResponseHeaders(http.StatusTemporaryRedirect) http.Redirect(this.RawWriter, this.RawReq, afterURL, http.StatusTemporaryRedirect) } else { + this.processResponseHeaders(u.Status) http.Redirect(this.RawWriter, this.RawReq, afterURL, u.Status) } return true @@ -85,8 +89,10 @@ func (this *HTTPRequest) doHostRedirect() (blocked bool) { } if u.Status <= 0 { + this.processResponseHeaders(http.StatusTemporaryRedirect) http.Redirect(this.RawWriter, this.RawReq, u.AfterURL, http.StatusTemporaryRedirect) } else { + this.processResponseHeaders(u.Status) http.Redirect(this.RawWriter, this.RawReq, u.AfterURL, u.Status) } return true diff --git a/internal/nodes/http_request_redirect_https.go b/internal/nodes/http_request_redirect_https.go index 5b274d3..d3da6b4 100644 --- a/internal/nodes/http_request_redirect_https.go +++ b/internal/nodes/http_request_redirect_https.go @@ -42,6 +42,7 @@ func (this *HTTPRequest) doRedirectToHTTPS(redirectToHTTPSConfig *serverconfigs. } newURL := "https://" + host + this.RawReq.RequestURI + this.processResponseHeaders(statusCode) http.Redirect(this.writer, this.RawReq, newURL, statusCode) return true diff --git a/internal/nodes/http_request_rewrite.go b/internal/nodes/http_request_rewrite.go index bc0f777..6141a4d 100644 --- a/internal/nodes/http_request_rewrite.go +++ b/internal/nodes/http_request_rewrite.go @@ -30,8 +30,10 @@ func (this *HTTPRequest) doRewrite() (shouldShop bool) { // 跳转 if this.rewriteRule.Mode == serverconfigs.HTTPRewriteModeRedirect { if this.rewriteRule.RedirectStatus > 0 { + this.processResponseHeaders(this.rewriteRule.RedirectStatus) http.Redirect(this.writer, this.RawReq, this.rewriteReplace, this.rewriteRule.RedirectStatus) } else { + this.processResponseHeaders(http.StatusTemporaryRedirect) http.Redirect(this.writer, this.RawReq, this.rewriteReplace, http.StatusTemporaryRedirect) } return true