From a59b6b095cafb4b0404ee9eabb353619b85ed15e Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sun, 12 Dec 2021 14:10:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8URL=E8=B7=B3=E8=BD=AC=E3=80=81?= =?UTF-8?q?=E9=87=8D=E5=86=99=E8=A7=84=E5=88=99=E8=B7=B3=E8=BD=AC=E3=80=81?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=B7=B3=E8=BD=AC=E5=88=B0HTTPS=E7=AD=89?= =?UTF-8?q?=E5=A4=84=E5=A2=9E=E5=8A=A0=E5=93=8D=E5=BA=94Header?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/nodes/http_request_host_redirect.go | 6 ++++++ internal/nodes/http_request_redirect_https.go | 1 + internal/nodes/http_request_rewrite.go | 2 ++ 3 files changed, 9 insertions(+) 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