Stellen Sie Ihre Frage und erhalten Sie einen Resümee des Dokuments, indem Sie diese Seite und den AI-Anbieter Ihrer Wahl referenzieren
Dieses Dokument ist veraltet, die Basisversion wurde aktualisiert am 22. August 2026.
Zur englischen Doku gehenVersionshistorie
- "Domänenbasiertes Locale-Routing über die Konfiguration routing.domains hinzugefügt."v8.5.02.4.2026
Der Inhalt dieser Seite wurde mit einer KI übersetzt.
Den englischen Originaltext ansehenWenn Sie eine Idee haben, um diese Dokumentation zu verbessern, zögern Sie bitte nicht, durch das Einreichen eines Pull-Requests auf GitHub beizutragen.
GitHub-Link zur DokumentationMarkdown des Dokuments in die Zwischenablage kopieren
Eigene Domains
Intlayer unterstützt domänenbasiertes Locale-Routing, sodass Sie spezifische Locales über dedizierte Hostnamen bereitstellen können. Beispielsweise können chinesische Besucher auf intlayer.zh anstatt auf intlayer.org/zh geleitet werden.
Funktionsweise
Die domains-Map in routing ordnet jeder Locale einen Hostnamen zu. Intlayer verwendet diese Map an zwei Stellen:
- URL-Generierung (
getLocalizedUrl): Wenn sich die Ziel-Locale auf einer anderen Domain als die aktuelle Seite befindet, wird eine absolute URL zurückgegeben (z. B.https://intlayer.zh/about). Wenn beide Domains übereinstimmen, wird eine relative URL zurückgegeben (z. B./fr/about). - Server-Proxy (Next.js & Vite): Eingehende Anfragen werden basierend auf der Domain, auf der sie ankommen, umgeleitet oder umgeschrieben.
Exklusive vs. gemeinsame Domains
Der entscheidende Unterschied ist die Exklusivität:
- Exklusive Domain - Nur eine Locale wird diesem Hostnamen zugeordnet (z. B.
zh → intlayer.zh). Die Domain selbst identifiziert die Locale, daher wird dem Pfad kein Locale-Präfix hinzugefügt.https://intlayer.zh/aboutstellt chinesische Inhalte bereit. - Gemeinsame Domain - Mehrere Locales werden demselben Hostnamen zugeordnet (z. B. werden sowohl
enals auchfraufintlayer.orgabgebildet). Es gilt das normale präfixbasierte Routing.intlayer.org/fr/aboutstellt französische Inhalte bereit.
Konfiguration
Kopieren Sie den Code in die Zwischenablage
Locales, die nicht in domains aufgeführt sind, verwenden weiterhin das Standard-Präfix-Routing ohne Domain-Überschreibung.
URL-Generierung
getLocalizedUrl erzeugt automatisch den richtigen URL-Typ basierend auf dem Aufrufkontext.
Locale auf derselben Domain (relative URL)
Kopieren Sie den Code in die Zwischenablage
Domainübergreifende Locale (absolute URL)
Kopieren Sie den Code in die Zwischenablage
Bereitstellung über die eigene Domain der Locale
Kopieren Sie den Code in die Zwischenablage
Automatische Erkennung der aktuellen Domain
currentDomain ist optional. Wenn es weggelassen wird, löst getLocalizedUrl es in dieser Reihenfolge auf:
- Der Hostname einer absoluten Eingabe-URL (z. B.
https://intlayer.org/about→intlayer.org). window.location.hostnamein Browserumgebungen.- Wenn keines von beiden verfügbar ist (SSR ohne explizite Option), wird eine relative URL für Locales auf derselben Domain zurückgegeben und keine absolute URL erzeugt - dies ist der sichere Fallback.
Kopieren Sie den Code in die Zwischenablage
getMultilingualUrls mit Domains
getMultilingualUrls ruft getLocalizedUrl für jede Locale auf, sodass je nach Domain des Aufrufers eine Mischung aus relativen und absoluten URLs erzeugt wird:
Kopieren Sie den Code in die Zwischenablage
Diese absoluten URLs können direkt in <link rel="alternate" hreflang="...">-Tags für SEO verwendet werden.
Typinferenz
routing.domains wird in die generierte Modulgaugmentierung serialisiert, daher
verengen getLocalizedUrl und getLocalizedPath ihren Rückgabetyp auf die exakte
URL, die ein domänengestütztes Locale auflöst — einschließlich der Präfixunterdrückung.
Kopieren Sie den Code in die Zwischenablage
Der URL-Typ ist die Union der zwei Werte, die die Funktion zurückgeben kann: die
absolute URL auf der Domäne des Locales und die relative URL, die sie zurückgibt, wenn die
gerenderte Seite bereits auf dieser Domäne lebt. getLocalizedPath hat diese
Mehrdeutigkeit nicht — es gibt niemals einen origin aus — daher bleibt es ein einzelnes Literal.
Locales, die sich eine Domäne teilen, behalten ihr normales Präfix im Typ ebenfalls:
Kopieren Sie den Code in die Zwischenablage
Regeneriere die Typen (
npx intlayer buildoder ein beliebiger dev server run) nach dem Ändern vonrouting.domains— die Verengung kommt aus der generierten__RoutingRegistry, nicht aus der Konfigurationsdatei selbst.
Proxy-Verhalten
Next.js
Die intlayerProxy-Middleware übernimmt das Domain-Routing automatisch. Fügen Sie sie zu Ihrer middleware.ts hinzu:
Kopieren Sie den Code in die Zwischenablage
Redirect - Anfrage kommt auf der falschen Domain für ein bestimmtes Locale-Präfix an:
Kopieren Sie den Code in die Zwischenablage
Rewrite - Anfrage kommt auf der exklusiven Domain der Locale ohne Präfix an:
Kopieren Sie den Code in die Zwischenablage
Vite
Das intlayerProxy Vite-Plugin wendet die gleiche Logik während der Entwicklung an:
Seit Intlayer v9 istintlayerProxy()direkt in dasintlayer()-Plugin integriert und standardmäßig durch die Optionrouting.enableProxyaktiviert (truestandardmäßig). Die separate Registrierung wie unten gezeigt ist nun optional — sie wird aus Gründen der Abwärtskompatibilität und für Setups beibehalten, die die Plugin-Reihenfolge kontrollieren müssen. Setzen Sierouting.enableProxy: false, um sich abzumelden. Siehe die v9-Versionshinweise.
Kopieren Sie den Code in die Zwischenablage
Hinweis: Bei der lokalen Entwicklung befinden Sie sich normalerweise auflocalhost, daher weisen domainübergreifende Umleitungen auf die Live-Domains anstatt auf einen anderen lokalen Port hin. Verwenden Sie ein Überschreiben der hosts-Datei (z. B.127.0.0.1 intlayer.zh) oder einen Reverse-Proxy, wenn Sie das Multi-Domain-Routing lokal testen müssen.
Locale-Switcher
Der useLocale-Hook von next-intlayer übernimmt die domänenbewusste Navigation automatisch. Wenn ein Benutzer zu einer Locale auf einer anderen Domain wechselt, führt der Hook eine vollständige Seitennavigation (window.location.href) anstelle eines clientseitigen Router-Pushs durch, da der Next.js-Router keine Ursprungsgrenzen überschreiten kann.
Kopieren Sie den Code in die Zwischenablage
Es ist keine zusätzliche Konfiguration erforderlich - useLocale erkennt intern window.location.hostname und entscheidet zwischen router.replace (gleiche Domain) und window.location.href (domainübergreifend).
SEO: hreflang Alternate Links
Domänenbasiertes Routing wird häufig zusammen mit hreflang verwendet, um Suchmaschinen mitzuteilen, welche URL für welche Sprache indexiert werden soll. Verwenden Sie getMultilingualUrls, um den vollständigen Satz alternativer URLs zu generieren:
Kopieren Sie den Code in die Zwischenablage
Dies erzeugt:
Kopieren Sie den Code in die Zwischenablage
Kern-Utilities
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Utility | Beschreibung |
|---|---|
getLocalizedUrl(url, locale, { currentDomain }) | Gibt eine relative oder absolute URL zurück, je nachdem, ob sich die Ziel-Locale auf der aktuellen Domain befindet. |
getMultilingualUrls(url, { currentDomain }) | Gibt eine Map lokalisierter URLs zurück, wobei relative und absolute URLs nach Bedarf gemischt werden. |
getPrefix(locale, { domains }) | Gibt ein leeres Präfix für Locales mit exklusiver Domain zurück, ansonsten das normale Präfix. |
