diff --git a/pages/server.py b/pages/server.py index e571f11..dd170b4 100644 --- a/pages/server.py +++ b/pages/server.py @@ -126,9 +126,10 @@ class Handler(http.server.BaseHTTPRequestHandler): root = site_root(repo).resolve() rel = unquote(path).lstrip("/") # on a wildcard zone's apex, //... lives at .zone: send people there - head = rel.split("/", 1)[0] - if not sub and self.host() in WILDCARDS and head and (root / head).is_dir() and ".." not in rel: - self.send_response(301); self.send_header("location", f"https://{head}.{self.host()}/" + rel[len(head):].lstrip("/")); self.end_headers() + first = rel.split("/", 1)[0] + # only folders that are a venture page (have an index.html); assets folders, .well-known etc. stay on the apex + if not sub and self.host() in WILDCARDS and first and (root / first / "index.html").is_file() and ".." not in rel: + self.send_response(301); self.send_header("location", f"https://{first}.{self.host()}/" + rel[len(first):].lstrip("/")); self.end_headers() return if sub: root = (root / sub).resolve()