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 {
-
+