Gros soucis avec mon rewriting

shelcko

WRInaute discret
Bonjour,
sur mon site j'ai 3 sortes d'urls:
-http://www.toto.fr/sites.php?theme=toto&cat=tata
-http://www.toto.fr/categories.php?theme=toto
-http://www.toto.fr/fiche.php?titre=toto

Donc pour rewriter tout ça j'ai fais ce .htaccess:

Code:
#--------------------------------------------------
# Répertoire : /
#--------------------------------------------------

# Le serveur doit suivre les liens symboliques :
Options +FollowSymlinks

# Activation du module de réécriture d'URL :
RewriteEngine on

#--------------------------------------------------
# Règles de réécriture d'URL :
#--------------------------------------------------

 # Rewriting sites :
RewriteRule ^(.*)-(.*)\.html$ /sites.php?theme=$1&cat=$2 [L]

# Rewriting categories :
RewriteRule ^(.*)\.html$ /categories.php?theme=$1 [L]

# Rewriting fiche :
RewriteRule ^(.*)\.html$ /fiche.php?titre=$1 [L]

les deux premières urls sont bien rewrité mais pour la 3° ça ne fonctionne pas quelqu'un a une idée ?
 

Djoule_logo

WRInaute impliqué
Je vais peut etre dire une connerie, mais je vois que tes 2 premières url sont au pluriel (siteS, categorieS), il semblerait logique que "fiche" le soit aussi. Auquel cas tu as tout simplement oublier le "s".

Mais vu que je n'ai pas l'adresse de ton site, je ne peux pas verifer, c'est une simple supposition.

Si ce n'est pas ça, je ne vois pas puisque le code à l'air bon.
 

bgdc

WRInaute impliqué
Bonjour,

Comment veux tu que le serveur fasse la difference entre la seconde et la 3eme regle ??? Ce sont excatement les memes, donc il fait la seconde et s'arrete la.

Il faudrait revoir ton format d'url.
 

shelcko

WRInaute discret
-bddc- oui mais dans le cas ou c'est la même règle pourquoi ça ne l'applique pas dans le deuxième cas.

-Djoule_logo-en fait j'ai vérifier aussi l'histoire du pluriel mais je sais pas pourquoi j'en ai fait 2 au pluriel et le troisieme au singulier.

l'adresse du site est :
-http://www.yoohoo.fr
 

bgdc

WRInaute impliqué
shelcko a dit:
-bgdc- oui mais dans le cas ou c'est la même règle pourquoi ça ne l'applique pas dans le deuxième cas.

Si ta page s'appelle toto.html par exemple, et ben la seconde regle correspond, elle va etre appliquée et donc ça n'ira meme pas tester la 3eme.

il te faudrait pus un truc du genre :

Code:
# Rewriting categories : 
RewriteRule ^c,(.*)\.html$ /categories.php?theme=$1 [L] 

# Rewriting fiche : 
RewriteRule ^f,(.*)\.html$ /fiche.php?titre=$1 [L]

Ensuite tu appelle tes page c,toto.html et f,toto.hml

J'ai mis volontairement la virgule pour ne pas entrer en conflit avec ta regle numero 1.
 

Djoule_logo

WRInaute impliqué
Bien vu bgdc, j'ai encore beaucoup à apprendre moi...

Shelcko, tu a mis le flag [L] à la fin de ta deuxième regle, donc quand elle est vérifié, il s'arrete la et ne va pas voir la suivante. Et comme ta ré écriture pour "fiche" est vérififié par celle de "categories" toutes tes fiches passeront en catégorie.
Il faut effectivement revoir tes règles.


***edit***
bgdc trop rapide.....
 

Discussions similaires

Haut