Bonsoir à tous
Comme je le fais rarement, je sèche sur l'écriture d'une règle de réécriture

Je suis dans le fichier .htaccess de la racine du site
J'ai actuellement
Redirect permanent /MP2024  https://www.alma-musica.net/html/stages/Ete-2024/Modalites-pratiques.pdf


Ce que je cherche à faire c'est une règle de réécriture telle que
/MPxxxx

donne comme résultat
https://www.alma-musica.net/html/stages/Ete-xxxx/Modalites-pratiques.pdf

cela m'éviterait de créer un nouveau Redirect tous les ans

Merci pour votre aide
Modifié par PapyJP (14 Mar 2024 - 19:21)
Modérateur
gcyrillus a écrit :
Bonsoir,

Essai ceci :
Redirect permanent ^/MP(.*)$ https://www.alma-musica.net/html/stages/Ete-2024/Modalites-pratiques.pdf

Ce qui en principe veut dire :
^ commence avec ici : /MP
(.*)$ et se termine avec n'importe quoi

ou bien (.*\d)$ si tu ne veut que des chiffres derrière.

si l'url demandée est /MP , alors tu n'est renvoyé nulle part, la regle n'est que partiellement remplie.

Cdt


Attention, c'est apparemment 4 chiffres Smiley cligne
Salut,

Mini complément pour info : pour les règles de redirection, il peut être nécessaire de mettre la règle entre guillemets lorsque l'on utilise le sélecteur {} ( {4} dans ton cas).

Si je me souviens bien j'avais rencontré ce cas sous nginx et je ne sais plus si c'est pareil pour apache.
En fait j'ai cru que ça marchait par un effet de bord : Redirect permanent avait mis la redirection dans le cache de mon navigateur, ce qui fait que ça ne passait pas par .htaccess
Je suis revenu à Redirect permanent Smiley decu
Modifié par PapyJP (15 Mar 2024 - 18:39)
Modérateur
Bonjour,

(retropedalage)
EDIT , la syntaxe ^/MP([0-9]{4}$ est correct.

Pour le cache, il n'y a pas d'autre solution que de vider manuellement le cache du/des navigateurs, ou de les redémarrer configurés de façon à ce qu'ils vident leurs cache à la fermeture.
Modifié par gcyrillus (17 Mar 2024 - 11:56)
Modérateur
Bonjour,
gcyrillus a écrit :
^/MP([0-9]{4})$
est plutôt une règle à tester.
Oui !
gcyrillus a écrit :
Il me semble que la syntaxe correcte pour matcher serait ^/MP([0-9]){4}$
Bah non ! Pourquoi changer un code qui marchait ! Smiley biggrin

{4} doit être à l'intérieur des parenthèses si l'on veut que les 4 chiffres soient capturés. Si on le met à l'extérieur, il n'y aura qu'un seul chiffre de capturé.

Amicalement,
Modifié par parsimonhi (17 Mar 2024 - 08:05)
Modérateur
parsimonhi a écrit :
Bonjour,
Bah non ! Pourquoi changer un code qui marchait ! Smiley biggrin

{4} doit être à l'intérieur des parenthèses si l'on veut que les 4 chiffres soient capturés. Si on le met à l'extérieur, il n'y aura qu'un seul chiffre de capturé.

Amicalement,

C'etait bien ce qu'il me semblais mais :
PappyJP a écrit :
En fait j'ai cru que ça marchait par un effet de bord : Redirect permanent avait mis la redirection dans le cache de mon navigateur, ce qui fait que ça ne passait pas par .htaccess

En vérifiant, sur le premier htaccess que j'avais, j'avais des résultat inattendu
- redirect permanent me provoqué un 500
- rewriterule, le {4} ne prenait que 3 chiffres !?!?!???...
en tentant de corriger, ce cache, m'as aussi jouer des tours et inciter à réinterpréter la règle qui bizarrement me faisait bien la redirection attendue. une chaine + quatre chiffres
Ce matin, depuis un autre navigateur, ça ne fonctionne évidement plus, en redémarrant mon FF , ça ne fonctionne plus non plus, retour sur la première proposition en redémarrant les deux navigateurs (cache vide) , Cela fonctionne correctement.

Moralité, si tu veut jouer avec htaccess et ses regex, vide et rince ton cache d'abord! et tu ne reinterprete pas aux petit bonheur la chance Smiley smile

Merci parcimonhi Smiley smile
Merci, mais comme dit mon fils j’arrive à un âge où le prix des bougies dépasse celui gâteau Smiley cligne