Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
Riwayat Versi
- "Mengimplementasikan penulisan ulang URL terpusat dengan formatter spesifik-framework dan hook useRewriteURL."v8.0.025/1/2026
Konten halaman ini diterjemahkan menggunakan AI.
Lihat versi terakhir dari konten aslinya dalam bahasa InggrisJika Anda memiliki ide untuk meningkatkan dokumentasi ini, silakan berkontribusi dengan mengajukan pull request di GitHub.
Tautan GitHub ke dokumentasiSalin Markdown dokumentasi ke clipboard
Implementasi Penulisan Ulang URL Kustom
Intlayer mendukung penulisan ulang URL kustom, memungkinkan Anda menentukan jalur spesifik per locale yang berbeda dari struktur standar /locale/path. Ini memungkinkan URL seperti /about untuk bahasa Inggris dan /a-propos untuk bahasa Prancis sambil menjaga logika aplikasi internal tetap kanonik.
Konfigurasi
Penulisan ulang URL kustom dikonfigurasikan di bagian routing dari file intlayer.config.ts Anda menggunakan formatter khusus framework. Formatter ini menyediakan sintaks yang benar untuk router pilihan Anda.
Salin kode ke clipboard
import { Locales, type IntlayerConfig } from "intlayer";import { nextjsRewrite } from "intlayer/routing";const config: IntlayerConfig = { // ... // konfigurasi lainnya 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;Formatter yang Tersedia
Intlayer menyediakan formatter untuk semua framework populer:
nextjsRewrite: Untuk Next.js App Router. Mendukung[slug],[...slug](1+), dan[[...slug]](0+).svelteKitRewrite: Untuk SvelteKit. Mendukung[slug],[...path](0+), dan[[optional]](0-1).reactRouterRewrite: Untuk React Router. Mendukung:slugdan*(0+).vueRouterRewrite: Untuk Vue Router 4. Mendukung:slug,:slug?(0-1),:slug*(0+), dan:slug+(1+).solidRouterRewrite: Untuk Solid Router. Mendukung:slugdan*slug(0+). ///tanstackRouterRewrite: Untuk TanStack Router. Mendukung$slugdan*(0+). ///nuxtRewrite: Untuk Nuxt 3. Mendukung[slug]dan[...slug](0+). ///viteRewrite: Formatter umum untuk proyek berbasis Vite. Menormalkan sintaks untuk proxy Vite. /// /// ### Pola Lanjutan /// /// Intlayer secara internal menormalkan pola-pola ini menjadi sintaks terpadu, memungkinkan pencocokan dan pembuatan path yang lebih canggih: /// /// - Segmen Opsional:[[optional]](SvelteKit) atau:slug?(Vue/React) didukung. /// - Catch-all (Nol atau lebih):[[...slug]](Next.js),[...path](SvelteKit/Nuxt), atau*(React/TanStack) memungkinkan mencocokkan beberapa segmen. /// - Catch-all Wajib (Satu atau lebih):[...slug](Next.js) atau:slug+(Vue) memastikan setidaknya satu segmen ada. /// /// ## Koreksi URL di Sisi Klien:useRewriteURL/// ///
Untuk memastikan bilah alamat browser selalu mencerminkan URL terlokalisasi yang "cantik", Intlayer menyediakan hook useRewriteURL. Hook ini memperbarui URL secara diam-diam menggunakan window.history.replaceState ketika pengguna mendarat pada path kanonik.
Penggunaan pada Frameworks
Salin kode ke clipboard
'use client';import { useRewriteURL } from "next-intlayer";const MyLayout = ({ children }) => { useRewriteURL(); // Secara otomatis memperbaiki /fr/about menjadi /fr/a-propos return <>{children}</>;};Integrasi Router & Proxies
Proxy sisi-server Intlayer (Vite & Next.js) secara otomatis menangani rewrite kustom untuk memastikan konsistensi SEO.
- Penulisan Ulang Internal: Ketika seorang pengguna mengunjungi
/fr/a-propos, proxy secara internal memetakan ke/fr/aboutsehingga framework Anda mencocokkan route yang benar. - Pengalihan Otoritatif: Jika pengguna mengetik
/fr/aboutsecara manual, proxy mengeluarkan pengalihan 301/302 ke/fr/a-propos, memastikan mesin pencari hanya mengindeks satu versi halaman tersebut.
Integrasi Next.js
Integrasi Next.js sepenuhnya ditangani melalui middleware intlayerProxy.
Salin kode ke clipboard
import { intlayerProxy } from "next-intlayer/middleware";import { NextRequest } from "next/server";export function middleware(request: NextRequest) { return intlayerProxy(request);}Integrasi Vite
Untuk SolidJS, Vue, dan Svelte, plugin Vite intlayerProxy mengelola rewrite selama pengembangan.
Salin kode ke clipboard
import { defineConfig } from "vite";import { intlayerProxy } from "vite-intlayer";export default defineConfig({ plugins: [intlayerProxy()],});Fitur Utama
1. Rewrite Multi-Konteks
Setiap formatter menghasilkan sebuah RewriteObject yang berisi aturan khusus untuk berbagai konsumen:
url: Dioptimalkan untuk pembuatan URL di sisi klien (menghapus segmen locale).nextjs: Mempertahankan[locale]untuk middleware Next.js.vite: Mempertahankan:localeuntuk proxy Vite.
2. Normalisasi Pola Otomatis
Intlayer secara internal menormalkan semua sintaks pola (misalnya mengonversi [param] menjadi :param) sehingga pemacokan tetap konsisten terlepas dari framework sumber.
3. URL Otoritatif untuk SEO
Dengan menegakkan pengalihan dari jalur kanonik ke alias yang lebih rapi (pretty aliases), Intlayer mencegah masalah konten duplikat dan meningkatkan keterlihatan situs.
Utilitas Inti
getLocalizedUrl(url, locale): Menghasilkan URL terlokalisasi yang mematuhi aturan penulisan ulang.getCanonicalPath(path, locale): Menyelesaikan URL terlokalisasi kembali ke jalur kanonik internalnya.getRewritePath(pathname, locale): Mendeteksi apakah sebuah pathname perlu dikoreksi ke alias terlokalisasi yang lebih rapi.