Posez votre question et obtenez un résumé du document en referencant cette page et le Provider AI de votre choix
Le contenu de cette page a été traduit à l'aide d'une IA.
Voir la dernière version du contenu original en anglaisSi vous avez une idée d’amélioration pour améliorer cette documentation, n’hésitez pas à contribuer en submitant une pull request sur GitHub.
Lien GitHub de la documentationCopier le Markdown du doc dans le presse-papiers
Hook useRewriteURL
Le hook useRewriteURL est conçu pour gérer les réécritures d'URL localisées côté client. Il détecte automatiquement si l'URL actuelle doit être corrigée en une version localisée « jolie » en fonction de la locale de l'utilisateur et des règles de réécriture définies dans intlayer.config.ts.
Contrairement à la navigation standard, ce hook utilise window.history.replaceState pour mettre à jour l'URL dans la barre d'adresse sans déclencher un rechargement complet de la page ni un cycle de navigation du routeur.
Utilisation
Appelez simplement le hook dans un composant côté client.
Comment cela fonctionne
- Détection: Le hook surveille le
window.location.pathnameactuel et lelocalede l'utilisateur. - Correspondance: Il utilise le moteur interne d'Intlayer pour vérifier si le pathname actuel correspond à une route canonique qui possède un alias localisé plus "joli" pour la locale en cours.
- Correction d'URL : Si un alias plus adapté est trouvé (et qu'il est différent du chemin actuel), le hook appelle
window.history.replaceStatepour mettre à jour l'URL du navigateur tout en préservant le même contenu canonique et l'état.
Pourquoi l'utiliser ?
- SEO : Garantit que les utilisateurs arrivent toujours sur l'URL canonique et lisible (pretty URL) unique pour une langue donnée.
- Cohérence : Évite les incohérences où un utilisateur pourrait saisir manuellement un chemin canonique (comme
/fr/privacy-notice) au lieu de la version localisée (/fr/politique-de-confidentialite). - Performance : Met à jour la barre d'adresse sans déclencher d'effets secondaires indésirables du routeur ni de remontages de composants.