Stellen Sie Ihre Frage und erhalten Sie einen Resümee des Dokuments, indem Sie diese Seite und den AI-Anbieter Ihrer Wahl referenzieren
Versionshistorie
- "Zentrale URL-Rewrites mit framework-spezifischen Formatierern und dem useRewriteURL-Hook implementieren."v8.0.025.1.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
Implementierung benutzerdefinierter URL Rewrites
Intlayer unterstützt benutzerdefinierte URL Rewrites, mit denen Sie locale-spezifische Pfade definieren können, die von der Standardstruktur /locale/path abweichen. Dadurch sind URLs wie /about für Englisch und /a-propos für Französisch möglich, während die interne Anwendungslogik kanonisch bleibt.
Konfiguration
Benutzerdefinierte Rewrites werden im Abschnitt routing Ihrer Datei intlayer.config.ts konfiguriert und verwenden frameworkspezifische Formatter. Diese Formatter liefern die korrekte Syntax für den von Ihnen bevorzugten Router.
Kopieren Sie den Code in die Zwischenablage
import { Locales, type IntlayerConfig } from "intlayer";import { nextjsRewrite } from "intlayer/routing";const config: IntlayerConfig = { // ... routing: { mode: "prefix-no-default", rewrite: nextjsRewrite({ "/[locale]/about": { fr: "/[locale]/a-propos", es: "/[locale]/acerca-de", }, "/[locale]/products/[id]": { fr: "/[locale]/produits/[id]", es: "/[locale]/productos/[id]", }, }), },};export default config;Verfügbare Formatierer
Intlayer stellt Formatierer für alle gängigen Frameworks bereit:
nextjsRewrite: Für Next.js App Router. Unterstützt[slug],[...slug](1+), und[[...slug]](0+).svelteKitRewrite: Für SvelteKit. Unterstützt[slug],[...path](0+), und[[optional]](0-1).reactRouterRewrite: Für React Router. Unterstützt:slugund*(0+).vueRouterRewrite: Für Vue Router 4. Unterstützt:slug,:slug?(0-1),:slug*(0+), und:slug+(1+).solidRouterRewrite: Für Solid Router. Unterstützt:slugund*slug(0+).tanstackRouterRewrite: Für TanStack Router. Unterstützt$slugund*(0+).nuxtRewrite: Für Nuxt 3. Unterstützt[slug]und[...slug](0+).viteRewrite: Generischer Formatter für jedes Vite-basierte Projekt. Normalisiert die Syntax für den Vite-Proxy.
Erweiterte Muster
Intlayer normalisiert diese Muster intern in eine einheitliche Syntax, die ausgefeilte Pfadabgleiche und -generierung ermöglicht:
- Optionale Segmente:
[[optional]](SvelteKit) oder:slug?(Vue/React) werden unterstützt. - Catch-all (null oder mehr):
[[...slug]](Next.js),[...path](SvelteKit/Nuxt) oder*(React/TanStack) erlauben das Abgleichen mehrerer Segmente. - Verpflichtendes Catch-all (eins oder mehr):
[...slug](Next.js) oder:slug+(Vue) stellen sicher, dass mindestens ein Segment vorhanden ist.
Client-seitige URL-Korrektur: useRewriteURL
Um sicherzustellen, dass die Adressleiste des Browsers stets die "schöne" lokalisierte URL anzeigt, stellt Intlayer den Hook useRewriteURL zur Verfügung. Dieser Hook aktualisiert die URL im Hintergrund mit window.history.replaceState, wenn ein Benutzer auf einen kanonischen Pfad gelangt.
Verwendung in Frameworks
Kopieren Sie den Code in die Zwischenablage
'use client';import { useRewriteURL } from "next-intlayer";const MyLayout = ({ children }) => { useRewriteURL(); // Korrigiert automatisch /fr/about in /fr/a-propos return <>{children}</>;};Router-Integration & Proxys
Die serverseitigen Proxies von Intlayer (Vite & Next.js) behandeln benutzerdefinierte Umschreibungen automatisch, um die SEO-Konsistenz sicherzustellen.
- Interne Umschreibungen: Wenn ein Benutzer
/fr/a-proposbesucht, leitet der Proxy ihn intern auf/fr/aboutum, sodass Ihr Framework die korrekte Route findet. - Verbindliche Weiterleitungen: Wenn ein Benutzer manuell
/fr/abouteingibt, sendet der Proxy eine 301/302-Weiterleitung zu/fr/a-propos, sodass Suchmaschinen nur eine Version der Seite indexieren.
Next.js-Integration
Die Next.js-Integration wird vollständig über die intlayerProxy-Middleware gehandhabt.
Kopieren Sie den Code in die Zwischenablage
import { intlayerProxy } from "next-intlayer/middleware";import { NextRequest } from "next/server";export function middleware(request: NextRequest) { return intlayerProxy(request);}Vite-Integration
Für SolidJS, Vue und Svelte verwaltet das intlayerProxy-Vite-Plugin die Rewrites während der Entwicklung.
Kopieren Sie den Code in die Zwischenablage
import { defineConfig } from "vite";import { intlayerProxy } from "vite-intlayer";export default defineConfig({ plugins: [intlayerProxy()],});Hauptmerkmale
1. Rewrites für mehrere Kontexte
Jeder Formatter erzeugt ein RewriteObject, das spezialisierte Regeln für verschiedene Konsumenten enthält:
url: Optimiert für clientseitige URL-Erzeugung (entfernt Locale-Segmente).nextjs: Bewahrt[locale]für Next.js-Middleware.vite: Bewahrt:localefür Vite-Proxies.
2. Automatische Pattern-Normalisierung
Intlayer normalisiert intern alle Muster-Syntaxen (z. B. die Umwandlung von [param] in :param), sodass das Matching unabhängig vom Quellframework konsistent bleibt.
3. SEO: Kanonische URLs
Durch das Erzwingen von Weiterleitungen von kanonischen Pfaden zu sprechenden Aliasen verhindert Intlayer Probleme mit doppelten Inhalten und verbessert die Auffindbarkeit der Seite.
Kernwerkzeuge
getLocalizedUrl(url, locale): Generiert eine lokalisierte URL unter Berücksichtigung der Rewrite-Regeln.getCanonicalPath(path, locale): Wandelt eine lokalisierte URL zurück in ihren internen kanonischen Pfad.getRewritePath(pathname, locale): Erkennt, ob ein Pfadname auf seinen schöneren lokalisierten Alias korrigiert werden muss.