Bun.serve({ port: 12498, fetch: async (req) => { const reqUrl = new URL(req.url); const rewriteUrl = new URL(reqUrl); rewriteUrl.hostname = "localhost"; rewriteUrl.port = "12499"; rewriteUrl.protocol = "http"; const rewrite = new Request(rewriteUrl, req); const response = await fetch(rewrite, { redirect: "manual" }); console.log(`[${response.status}] ${rewriteUrl.pathname}`); if (response.status === 404 && response.headers.has("Location")) { // Prevent redirection from a non locale-specific page to the en locale-specific page if (response.headers.get("location") === "/en" + rewriteUrl.pathname) { rewriteUrl.pathname = "/en/" + rewriteUrl.pathname; const rewrite = new Request(rewriteUrl, req); return await fetch(rewrite, { redirect: "manual" }); } return new Response(await response.blob(), { headers: response.headers, status: 302, statusText: "Found", }); } return response; }, });