import { siteConfig } from "@/lib/site-config"; /** * Oeffentliche Basis-URL der Seite, ohne abschliessenden Schraegstrich * (z.B. "https://wabenhain.com"). * * EINZIGE Quelle fuer absolute Links — sowohl fuer E-Mails (Bestellbestaetigung, * Newsletter-Opt-in, Passwort-Reset) als auch fuer alles, was Suchmaschinen * sehen: metadataBase/Canonicals (app/layout.tsx), sitemap.xml, robots.txt und * saemtliche JSON-LD-Bloecke. * * Vorher war das auf zwei Quellen verteilt: E-Mails nutzten * NEXT_PUBLIC_SITE_URL, SEO-relevante Stellen dagegen ein fest verdrahtetes * "https://" + siteConfig.domain. Laeuft die Seite unter einer anderen Domain * (Staging, Vorschau-Host, spaeterer Domainwechsel), zeigten Sitemap, * Canonical-Tags und strukturierte Daten damit geschlossen auf eine fremde * Adresse: Google verwirft eine Sitemap mit fremden Hosts, und Canonicals auf * eine andere Domain weisen die Indexierung aktiv von der echten Seite weg. * * siteConfig.domain bleibt als Rueckfallebene erhalten, damit eine vergessene * Umgebungsvariable in Produktion nicht zu "http://localhost:3000" in einer * oeffentlichen Sitemap fuehrt. */ export function getSiteUrl(): string { const configured = process.env.NEXT_PUBLIC_SITE_URL?.trim(); if (configured) return configured.replace(/\/+$/, ""); return `https://${siteConfig.domain}`; } /** * Alias von getSiteUrl() unter dem in E-Mail-Code eingebuergerten Namen. * Beide liefern denselben Wert — der Unterschied ist rein sprachlich. */ export function getBaseUrl(): string { return getSiteUrl(); }