Aller au contenu

Réécriture d'URL non fonctionnnel sur un serveur


Sujets conseillés

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} !-f
RewriteCond %{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é par Jeanluc
Ne pas oublier les balises [code]...[/code]
Lien vers le commentaire
Partager sur d’autres sites

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

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

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...