oxomichael Posté 12 Janvier 2009 Partager Posté 12 Janvier 2009 (modifié) J'ai une réécriture d'URL qui semble fonctionner en local sur apache 2.2 Le site est hébergé sur un apache 1.3 Voilà mon htaccess RewriteCond %{REQUEST_URI} !^(.*)/admin/.* RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)\.html$ caracteristique.php?caracdisp_txt=$1 [NC,QSA,L]RewriteRule ^(.*)/(.*)\.html$ produit.php?caracdisp_txt=$1&produit_txt=$2 [NC,QSA,L]RewriteRule ^([a-z0-9-]*)__([0-9]*)_([a-z0-9-]*)_([0-9]*)\.html$ contenu.php?id_contenu=$4 [NC,QSA,L] Le problème est que mes variables ne sont pas toujours rempli caracdisp_txt peut ne rien renvoyer Dans mes url je supprimer tous les caractères spéciaux, etc, etc Je sais pas ce qui peut clocher, je suis perdu Modifié 12 Janvier 2009 par Jeanluc Ne pas oublier les balises [code]...[/code] Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jeanluc Posté 12 Janvier 2009 Partager Posté 12 Janvier 2009 Bonjour et bienvenue, La condition ^(.*)/(.*)\.html$ ne sera jamais vraie, car elle n'est qu'un cas particulier de ^(.*)\.html$. Idem pour la dernière ligne. Jean-Luc Lien vers le commentaire Partager sur d’autres sites More sharing options...
Martoclou Posté 13 Janvier 2009 Partager Posté 13 Janvier 2009 Les règles sont lues dans l'ordre, et le L à la fin indique que dès qu'une condition est remplie, on passe toutes les suivantes. Autrement dit, à ta place, je mettrais RewriteRule ^(.*)\.html$ caracteristique.php?caracdisp_txt=$1 [NC,QSA,L] à la fin Et pour être sûr que les règles ne se font pas concurrence , au lieu de : RewriteRule ^(.*)/(.*)\.html$ produit.php?caracdisp_txt=$1&produit_txt=$2 [NC,QSA,L] j'écrirais RewriteRule ^([^/]+)/([^/]+)\.html$ produit.php?caracdisp_txt=$1&produit_txt=$2 [NC,QSA,L] Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 13 Janvier 2009 Partager Posté 13 Janvier 2009 Il te suffit simplement d'inverser l'ordre des règles, en mettant la plus restrictive au début. Donc pour toi, dans l'ordre 3, 2, 1 au lieu de 1, 2, 3 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant