Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюЯкщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на GitHub.
Посилання на документацію на GitHubСкопіювати документацію у форматі Markdown в буфер обміну
Хук useRewriteURL
Хук useRewriteURL для Next.js, це клієнтський хук, який автоматично керує локалізованими переписуваннями URL. Він гарантує, що URL у браузері завжди відображає «гарний» локалізований шлях, визначений у вашому intlayer.config.ts, навіть якщо користувач вручну вводить канонічний шлях з префіксом локалі.
Цей хук працює непомітно, використовуючи window.history.replaceState, уникаючи зайвих навігацій через Next.js router або перезавантажень сторінки.
Використання
Просто викличте хук у Client Component, який є частиною вашого layout.
Як це працює
- Моніторинг шляху: Хук відстежує зміни
localeкористувача. - Виявлення перепису: Він порівнює поточний
window.location.pathnameз правилами перепису у вашій конфігурації. - Виправлення URL: Якщо для поточного шляху знайдено читабельніший локалізований псевдонім, хук викликає
window.history.replaceState, щоб оновити адресний рядок, залишаючи користувача на тій же внутрішній сторінці.
Чому використовувати це в Next.js?
Поки intlayerMiddleware обробляє перенаправлення й перезаписи на стороні сервера та початкові редиректи, хук useRewriteURL забезпечує, щоб URL у браузері залишався узгодженим із вашою бажаною SEO-структурою навіть після клієнтських переходів.
- Чисті URL: Забезпечує використання локалізованих сегментів, наприклад
/fr/essaisзамість/fr/tests. - Продуктивність: Оновлює адресний рядок без запуску повного циклу роутера або повторного отримання даних.
- Відповідність SEO: Запобігає проблемам з дубльованим контентом, гарантуючи, що користувачам і пошуковим ботам доступна лише одна версія URL.