Comment fonctionne la normalisation des permaliens avec regex ?

Je suis allé dans ce paramètre Admin > Permaliens > Paramètres
Qui dit qu’il appliquera le regex avant de faire correspondre le permalien.

J’ai une ancienne URL de forum xenforo qui est
http://localhost/threads/xyz-abc-is-ghp.223846/

Et la nouvelle URL discourse est
http://localhost/t/xyz-abc-is-ghp/274528

Lorsque j’entre l’URL xenforo dans le navigateur sans le slug comme suit, cela redirige correctement mais pas avec.
http://localhost/threads/223846/

J’ai donc essayé d’utiliser le regex suivant pour supprimer le slug, mais il semble ne rien faire. Est-ce qu’il me manque une étape ou est-ce que ce n’est pas comme ça qu’il faut faire ?
/^(/threads/)[^.]+.(\d+)/?$/+/\1\2

1 « J'aime »

Vous n’avez pas besoin d’un \\2. Et vous avez besoin d’un \\ avant le point que vous recherchez. Vous n’avez qu’une seule chose entre parenthèses. Peut-être quelque chose comme

/^(/threads/)[^.]+\\.(\\d+)/?$/threads/\\1
1 « J'aime »

/threads\\/[^.]+\\.([0-9]+)\\/?/threads/\\1

cela a fonctionné

3 « J'aime »

Salut, je suis dans la même situation et ça a fonctionné pour moi ! :clinking_beer_mugs:

Mais quand l’URL (URL xenforo) a des pages internes comme par exemple « https://website[.]com/threads/thread-slug/page-3 », j’obtiens à nouveau la page d’erreur « Oops ! Cette page n’existe pas ou est privée. ». Une solution ?

1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.