Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомЕсли у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHubКопировать Markdown документа в буфер обмена
Хук useRewriteURL
Хук useRewriteURL для Next.js, это клиентский хук, который автоматически управляет локализованными переписыванием URL. Он обеспечивает соответствие URL в адресной строке браузера «красивому» локализованному пути, определённому в вашем intlayer.config.ts, даже если пользователь вручную вводит канонический путь с префиксом локали.
Этот хук работает незаметно, используя window.history.replaceState, что позволяет избежать лишних навигаций через роутер Next.js или перезагрузок страницы.
Использование
Просто вызовите хук в Client Component, который является частью вашего layout.
Как это работает
- Отслеживание пути: Хук слушает изменения
localeпользователя. - Обнаружение перезаписи: Он сверяет текущий
window.location.pathnameс правилами перезаписи в вашей конфигурации. - Корректировка URL: Если для текущего пути найден более «красивый» локализованный псевдоним, хук вызывает
window.history.replaceState, чтобы обновить адресную строку, при этом оставляя пользователя на той же внутренней странице.
Зачем использовать это в Next.js?
Пока intlayerMiddleware обрабатывает серверные переписывания и начальные перенаправления, хук useRewriteURL гарантирует, что URL в браузере остается согласованным с вашей предпочтительной SEO-структурой даже после клиентских переходов.
- Чистые URL: Обеспечивает использование локализованных сегментов, например /fr/essais вместо /fr/tests.
- Производительность: Обновляет адресную строку без запуска полного цикла роутера или повторной выборки данных.
- Соответствие SEO: Предотвращает проблемы с дублированным контентом, обеспечивая видимость только одной версии URL для пользователей и поисковых ботов.