From cf8ce93a562ed77b883d8225d4fa0c6f0cec2262 Mon Sep 17 00:00:00 2001 From: klemek Date: Mon, 20 Apr 2026 23:34:39 +0200 Subject: [PATCH] fix: redirects --- src/handlers.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/handlers.py b/src/handlers.py index 35983cd..0a0f5ff 100644 --- a/src/handlers.py +++ b/src/handlers.py @@ -132,7 +132,7 @@ class BaseHandler(abc.ABC, http.server.BaseHTTPRequestHandler): def send_proxy(self, url: str) -> None: headers = dict(self.headers) - headers["Host"] = urllib.parse.urlparse(url).netloc + headers["Host"] = (target_host := urllib.parse.urlparse(url).netloc) headers["X-Real-IP"] = self.client_address[0] headers["X-Forwarded-Host"] = self.host headers["X-Forwarded-For"] = self.client_address[0] @@ -156,16 +156,14 @@ class BaseHandler(abc.ABC, http.server.BaseHTTPRequestHandler): return self.send_response(response.status_code, response.reason) for header, value in response.headers.items(): - if header.lower() == "location": - self.send_header(header, value.removeprefix(url)) - elif header.lower() not in [ + if header.lower() not in [ "content-length", "content-encoding", "transfer-encoding", "server", "date", ]: - self.send_header(header, value) + self.send_header(header, value.replace(target_host, self.host)) self.send_header("Content-Length", str(out_size := len(response.content))) self.end_headers() if out_size > 0: