Alias

Problématique

Avant hugo 0.155.0

On gérait les alias avec des paths absolues. Par exemple :

url: "/fr/chemin/actuel/de/la/page/"
aliases:
  - "/ancien/chemin/de/la/page/"

Depuis hugo 0.155.0

À partir de 0.155, Hugo génére les alias absolus non pas à partir de la racine du site, mais à partir du site dans un contexte de langue.

Exemple : pour la page située dans content/fr/pages/a-propos/index.html, imaginons un alias /nous/.

A côté de ça, il peut gérer les urls relatifs à l’emplacement du fichier.

Path typeFile pathAliasServer-relative path
page-relativecontent/examples/a.en.mda-old/en/examples/a-old/
page-relativecontent/examples/a.en.md../a-old/en/a-old/
site-relativecontent/examples/a.en.md/a-old/en/a-old/

Pour un site est monolingue il n’y a pas de problématique.

Cas concret

Avec un alias comme :

url: /fr/chemin/actuel/
aliases:
  - /ancien/chemin/

Hugo 0.155 va créer une redirection de /fr/ancien/chemin/ et ne gère pas /ancien/chemin.

Situation idéale

Générer les alias corrects. Demander à @bep.

Solution proposée

Pour un site est multilingue :

Comme hugo considère la racine “/” de l’alias comme le contexte de langue, il faut remonter l’alias d’un niveau pour être à la racine du site :

/ancien/chemin/ deviens alors /../ancien/chemin/

Cas à tester

Site monolingue

Tester les alias en racine.

Site multilingue

1. Alias racine

On veut rediriger :

/nous/ vers /fr/a-propos/

Piste :

url: "/fr/a-propos/"
aliases:
  - /../nous/

2. Alias dans la même langue

On veut rediriger :

/fr/nous/ vers /fr/a-propos/

Piste :

url: "/fr/a-propos/"
aliases:
  - /../fr/nous/

3. Alias d’une langue à une autre langue

Cas qui ne devrait normalement pas se produire sauf dans le cas d’une migration d’un site très mal rangé.

On veut rediriger :

/en/us/ vers /fr/a-propos/

Piste :

url: "/fr/a-propos/"
aliases:
  - /../en/us/