diff --git a/src/server.ts b/src/server.ts index 03f7442..1f992b6 100644 --- a/src/server.ts +++ b/src/server.ts @@ -139,9 +139,18 @@ function html(body: string, cache = "no-cache") { }) } -function langRedirectPage(rest: string): string { - const fr = `${SITE_URL}/fr${rest}` - const en = `${SITE_URL}/en${rest}` +function baseUrl(req: Request, fallback = SITE_URL): string { + const host = (req.headers.get("host") || "").trim() + if (!host) return fallback + // Tor = HTTP, tout le reste est servi en HTTPS (le schéma suit l'hôte courant, + // pour que la redirection de langue reste sur le domaine actuel, .onion compris). + const scheme = host.toLowerCase().endsWith(".onion") ? "http" : "https" + return `${scheme}://${host}` +} + +function langRedirectPage(rest: string, base: string): string { + const fr = `${base}/fr${rest}` + const en = `${base}/en${rest}` const restJs = JSON.stringify(rest) return ` @@ -154,18 +163,18 @@ function langRedirectPage(rest: string): string { - +