Rewriter une catégorie sans id ni extension?

WRInaute passionné
Bonjour,

Je cherche à rewriter des catégories et sous catégories sans inclure dans l'url l'id et l'extension de la page.
Par exemple,-http://mon-site.com/categorie-12-internet.php deviendrait -http://mon-site.com/internet/ , comme si la catégorie et sous cat. était un dossier. Pour ce faire, j'enregistre les catégories et sous catégories avec en plus un champ dont le titre est unique et ré écrit. Par exemple : "Voyage et vacances" est enregistré "voyage-et-vacance".
Je construis mes liens depuis l'accueil :
Code:
<a title="'.$categorie['nom_categorie'].'" href="'.$categorie['nom_categorie_rewriter'].'">
Ensuite, je sèche sur le rewriting .. soit du 404 soit ça merde complètement .. bref, je ne trouve pas la bonne syntaxe et un peut d'aide serait bienvenue.
J'ai testé :
Code:
RewriteRule  ^([a-z]*)\.php$  categorie.php?categorie=$1 [L]
RewriteRule  ^([a-z]*)$  categorie.php?categorie=$1 [L]
RewriteRule  ^(*)\.php$  categorie.php?categorie=$1 [L]
RewriteRule  ^(*)$  categorie.php?categorie=$1 [L]
Merci
 
WRInaute impliqué
Sans garantie, essaye :

Code:
RewriteRule  ^([a-z]+)\.php$  categorie.php?categorie=$1 [L]
RewriteRule  ^([a-z]+)$  categorie.php?categorie=$1 [L]
RewriteRule  ^(.+)\.php$  categorie.php?categorie=$1 [L]
RewriteRule  ^(.+)$  categorie.php?categorie=$1 [L]
 
WRInaute passionné
Merci seebz :),
Je viens de tous les tester et ça ne veut toujours pas ..saloperie de rewriting ^^!
 
WRInaute passionné
J'arrive à afficher la page de cette façon :
Le lien :
Code:
<a href="cat-'.$categorie['nom_categorie_rewriter'].'">
Le rewrite :
Code:
RewriteRule  ^cat-(.*)$  categorie.php?categorie=$1 [L]
A partir du moment ou je supprime "cat-" de l'url ou du rewrite, ça merde ... je ne dois pas être très loin !!
 
WRInaute accro
Ben la "bonne" règle c'est ^(.+)$ mais ça va "tout" prendre. Il faut donc rajouter des exclusions pour les "vrais" fichiers (css, jss, images, etc.) par exemple avec une rewritecond, ou alors utiliser des vhosts différents, ou un dossier, ou d'autres rewriterules avant (avec un [L]) pour ne pas arriver jusqu'à celle-là.

Jacques.
 
WRInaute impliqué
Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
 
WRInaute passionné
Merci pour ces renseignements :wink:
jcaron: je n'ai pas tout comprit. Pourquoi ça va "tout" prendre ?

Pour le moment, j'en suis la :
Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#Rewrite des catégories
RewriteRule  ^(.+)$  categorie.php?categorie=$1 [L]

Je cherche à présent le rewriting des sous catégories tout en prenant en compte les catégories dans l'url ...

Forme de mon lien depuis la catégorie :
Code:
<a href="'.$titre_categorie.'/'.$titre_sous_categorie.'">
Résultat :
-http://mon-site.com/internet/blog
Je parviens à afficher la bonne url dans la barre d'adresse mais son contenu correspond à une partie de ma page d'accueil 8O ..saloperie ^^.
J'ai testé différentes variantes de rewriting mais comme d'hab. il m'aime pas !
Code:
RewriteRule  ^(.+)/(.+)$  sous-categorie.php?categorie=$1&sous_categorie=$2 [L]
RewriteRule  ^(.*)/(.+)$  sous-categorie.php?categorie=$1&sous_categorie=$2 [L]
RewriteRule  ^([a-z]*)/(.+)$  sous-categorie.php?categorie=$1&sous_categorie=$2 [L]
RewriteRule  ^$1/(.+)$  sous-categorie.php?sous_categorie=$2 [L]

La finalité, c'est d'obtenir des url sous la forme : -http://mon-site.com/categorie/sous-categorie/ma-page.php ou "categorie" et "sous-categorie" sont des dossiers virtuels.

Merci
 
WRInaute passionné
Je re ...

J'ai testé tout ça sans succès :
Code:
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#Rewrite des categories ok
RewriteRule  ^(.+)$  categorie.php?categorie=$1 [L]

#Rewrite des sous-catégories pas ok

#RewriteRule  ^(.+)/(.+)$  sous-categorie.php?categorie=$1&sous_categorie=$2 [L]
#RewriteRule ^(.*)/(.+)$ sous-categorie.php?categorie=$1&sous_categorie=$2 [L]
#RewriteRule ^(.*)/(.*)$ sous-categorie.php?categorie=$1&sous_categorie=$2 [L]
#RewriteRule ^(.+)/(.*)$ sous-categorie.php?categorie=$1&sous_categorie=$2 [L]

#RewriteRule ^(.*)/(.+)$ sous-categorie.php?sous_categorie=$2 [L]
#RewriteRule ^(.+)/(.+)$ sous-categorie.php?sous_categorie=$2 [L]
#RewriteRule ^(.+)/(.*)$ sous-categorie.php?sous_categorie=$2 [L]
#RewriteRule ^(.*)/(.*)$ sous-categorie.php?sous_categorie=$2 [L]

#RewriteRule $1/^(.+)$ sous-categorie.php?sous_categorie=$2 [L]
#RewriteRule ^$1/(.+)$ sous-categorie.php?sous_categorie=$2 [L]
#RewriteRule ^$1/(.*)$ sous-categorie.php?sous_categorie=$2 [L]

#RewriteRule  ^(.+)$  sous-categorie.php?sous_categorie=$1 [L]
Pour l'affichage des sous catégories, j'obtiens la plupart du temps la bonne url dans la barre d'adresse mais c'est une partie de ma page d'accueil qui s'affiche :?:

Vous avez des suggestions ?
 
Discussions similaires
Haut