fix: redirects
This commit is contained in:
+3
-5
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user