rewriting !!! je comprend plus

  • Auteur de la discussion Auteur de la discussion Ice-b
  • Date de début Date de début
I
Ice-b
Guest
Bonjour,
ça fait plus de trois jour que je cherche à effectuer la réécriture des URL mais j'ai pas pu, quelqu'un peut t'il m'aider :lol:

voici le code
Code:
RewriteEngine on

RewriteRule ^sejour-(.*)\.html$ /sejours/sejour-tunisie/index.php?budget=$1 [L]
RewriteRule ^sejour-depart-(.*)\.html$ /sejours/sejour-tunisie/index.php?depart=$1 [L]
RewriteRule ^sejour-a-(.*)\.html$ /sejours/sejour-tunisie/index.php?ville=$1 [L]
RewriteRule ^sejour-(.*)\.html$ /sejours/sejour-tunisie/index.php?m=$1 [L]
RewriteRule ^sejour-avec-(.*)\.html$ /sejours/sejour-tunisie/index.php?voyagiste=$1 [L]


bien sure tous ça ne marche pas !! uniquement la première ligne :?
 
WRInaute accro
ta premiere regle est executée avant ta seconde, tu dois donc mettre ta seconde plus specifique avant ta premiere (pareil pour les autres) sinon ta seconde ne sera jamais effectuée !

RewriteRule ^sejour-avec-(.*)\.html$ /sejours/sejour-tunisie/index.php?voyagiste=$1 [L]
RewriteRule ^sejour-depart-(.*)\.html$ /sejours/sejour-tunisie/index.php?depart=$1 [L]
RewriteRule ^sejour-a-(.*)\.html$ /sejours/sejour-tunisie/index.php?ville=$1 [L]
RewriteRule ^sejour-(.*)\.html$ /sejours/sejour-tunisie/index.php?m=$1 [L]

NB : la partie gaucge de ta regle 1 et 4 est identique, c est pas possible, l'une sera toujours executé avant l autre
 
I
Ice-b
Guest
merci d'abord pour votre rapide réponse, mais que voulez vous dire de
"plus specifique"

l'ideal pour moi d'avoir ça

Code:
RewriteRule ^sejour-(.*)\.html$ /sejours/sejour-tunisie/index.php?voyagiste=$1 [L]
RewriteRule ^sejour-(.*)\.html$ /sejours/sejour-tunisie/index.php?depart=$1 [L]
RewriteRule ^sejour-(.*)\.html$ /sejours/sejour-tunisie/index.php?ville=$1 [L]
RewriteRule ^sejour-(.*)\.html$ /sejours/sejour-tunisie/index.php?m=$1 [L]

mais je pense que ça n'est pas possible, par contre j'ai vu pas mal de site qu'il le font !!
 
WRInaute accro
mais ce n est pas possible. comment ton serveur sait si il doit executer la regle 1, 2, 3, ou 4 sachant que ce sont les memes
 
WRInaute accro
Alors :

A mettre en premier :
Code:
RewriteRule ^sejour-depart-(.*)\.html$ /sejours/sejour-tunisie/index.php?depart=$1 [L]
RewriteRule ^sejour-avec-(.*)\.html$ /sejours/sejour-tunisie/index.php?voyagiste=$1 [L]
RewriteRule ^sejour-a-(.*)\.html$ /sejours/sejour-tunisie/index.php?ville=$1 [L]

Par contre, concernant les deux règles suivantes,
Code:
RewriteRule ^sejour-(.*)\.html$ /sejours/sejour-tunisie/index.php?budget=$1 [L]
RewriteRule ^sejour-(.*)\.html$ /sejours/sejour-tunisie/index.php?m=$1 [L]
elles sont totalement identiques dans leur partie de gauche, elles ne peuvent fonctionner toutes les deux; en faisant un lien vers l'URL "sejour-342.html , comment veux tu que le serveur sache s'il faut l'attribuer à la règle 1 ou la règle 2 ? :)
 
I
Ice-b
Guest
1- y'a t'il pas un moyen de faire la réécriture a la volé, cad ajouter uniquement le séparateur "-" entre les variables.

2- si j'ai bien compris ce code doit marcher !
Code:
RewriteEngine on

RewriteRule ^sejour-depart-(.*)\.html$ /sejours/sejour-tunisie/index.php?depart=$1 [L]
RewriteRule ^sejour-avec-(.*)\.html$ /sejours/sejour-tunisie/index.php?voyagiste=$1 [L] 
RewriteRule ^sejour-en-(.*)\.html$ /sejours/sejour-tunisie/index.php?m=$1 [L]
RewriteRule ^sejour-a-(.*)\.html$ /sejours/sejour-tunisie/index.php?ville=$1 [L]
RewriteRule ^sejour-(.*)\.html$ /sejours/sejour-tunisie/index.php?budget=$1 [L]

malheureusement, uniquement la première règle qui marche malgré que j'ai changer leurs ordre !!
 
WRInaute accro
Pour chaque cas, qu'as tu comme type d'erreur? Une erreur serveur 500 ? une erreur 404 ? une page vide? Une page incomplète ?

Ice-b a dit:
1- y'a t'il pas un moyen de faire la réécriture a la volé, cad ajouter uniquement le séparateur "-" entre les variables.

2- si j'ai bien compris ce code doit marcher !
Code:
RewriteEngine on

RewriteRule ^sejour-depart-(.*)\.html$ /sejours/sejour-tunisie/index.php?depart=$1 [L]
RewriteRule ^sejour-avec-(.*)\.html$ /sejours/sejour-tunisie/index.php?voyagiste=$1 [L] 
RewriteRule ^sejour-en-(.*)\.html$ /sejours/sejour-tunisie/index.php?m=$1 [L]
RewriteRule ^sejour-a-(.*)\.html$ /sejours/sejour-tunisie/index.php?ville=$1 [L]
RewriteRule ^sejour-(.*)\.html$ /sejours/sejour-tunisie/index.php?budget=$1 [L]

malheureusement, uniquement la première règle qui marche malgré que j'ai changer leurs ordre !!
 
I
Ice-b
Guest
Merci a tous le monde.
tous marche nikel

c'est vraiment honteux :oops:
Comme je travail sur une page de test j'ai oublier une autre fichier htacess, donc j'ai eu deux deux fichier htacess qui s'interfère entre eux.

:roll:
je commence à veiller, ça fait un bout de temps qui j'ai pas coder :lol:
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut