rewriting !!! je comprend plus

  • Auteur de la discussion Auteur de la discussion Ice-b
  • Date de début Date de début
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 :?
 
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
 
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 !!
 
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
 
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 ? :)
 
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 !!
 
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 !!
 
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