Bonjour,
ça fait 2 jours j'essaie d'appliquer une ré écrirure à mes liens trop moches dans la barre du navigateur via .htaccess, mais rien n'y fait. Merci de me donner votre avis.
A savoir le module apache rewrite_module a été verifié il est activé.

# ========= URL REWRITE =======
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^/categorie/destockage-([a-z0-9\-]+)\.html$ /?rub=destock&cat=$1 [QSA,L]

Resultat : cette expression est tout simplement ignorée, comme si rien était dans mon fichier .htaccess
Merci pour vos conseils.

12 réponses


Bonjour,
A quoi est censé servir le ^ au début du lien ?
C'est peut-être ça qui bloque.
De plus, que veut dire [QSA,L] ?

Salut,

C'est à dire, "ignorée" ? Tu as bien entendu modifié tes liens ?

@Symsym : Le ^ signifie le début, il ne doit rien y avoir avant. Pour ce qui est des flags, la doc est ici (elle est en français, donc pas d'excuse).

Merci pour tes précisions : ) autant pour moi

jvnet
Auteur

Bonjour,
Merci pour ces réponse, à savoir j'ai posé ma demande ici c'est pour me faire aider et avoir une compréhension sur ces codifications, si tu me retournes la question à quoi ça sert le ^, je ne saurais te repondre heureusement Symsym t'a répondu. c'est une syntaxe trouvée sur la toile que j'essai de l'adapter à mon cas. je vais enlever le ^ pour voir ce que ça donne. En effet, le lien n'est pas complet dans mon exemple, en réalité il est sous la forme http://www.monsite.fr/?rub=destock&cat=destockage massif des articles Je ferai un retour rapidement sur le résultat.

Normalement on redirige l'url 'propre vers une page index.php suivie de paramètres
là je ne vois pas la page php qui est appelée (si c'est bien du php ?)
A première vue, je dirais que si on tape
http://monsite.fr/categorie/destockage-1234.html
on devrait appeler http://monsite.fr?rub=destock&cat=1234
est-ce ce que tu avais prévu ?

pour info j'utilise le commande suivante dans le fichier httpd.conf

LogLevel debug rewrite:trace8

ça permet de tracer tout ce qui est rewriting

jvnet
Auteur

Bonjour Huggy, oui c'est bien cette forme d'url que je souhaite obtenir, lorsque la page http://monsite.fr?rub=destock&cat=1234 est appelée, il doit affichée une url propre comme http://monsite.fr/categorie/destockage-1234.html c'est adire supprimer tous les parametres et les remplacer par une url propre.

Bonsoir.
Par contre, selon l'exemple que tu donnes, tu as un problème de syntaxe pour la regex de ta règle pour le rewrite.
Il y a des espaces dans le nom de la catégoriedestockage massif des articles, il faudrait mieux faire un système de slug pour l'url.
Il est donc normal que ta règle pour le rewrite est ignorée et puis comme l'a dit Huggy, tu n'indiques pas quelle page est concernée pour cette règle, si c'est la page index.php qui se situe à la racine de ton site, tu dois faire quelque chose comme :
index.php?rub=destock&cat=$1.

jvnet
Auteur

Bonsoir,
ça qu'entendez-vous par un syteme de slug pour le nom des categories contenant des espaces ?
Compte tenu dans l'url de base le fichier index.php n'apparait pas dans l'url le format est bien : http://www.monsite.fr?rub=destock&cat=destockage massif des articles, je pensais dans le nouveau url attendu (url propre) qu'il n'etait pas nécessaire d'indiquer la page index.php. Cependant, meme en faisant cette modif, ```
RewriteRule ^/grossiste/destockage-([a-z0-9-]+).html$ /index.php?rubgrossiste=destock&cat=$1 [QSA,L]

@Lartak je pense que la page index.php est appelée par défaut

qu'entendez-vous par un syteme de slug pour le nom des categories contenant des espaces ?

Au lieu d'avoir par exemple destockage massif des articles, avoir destockage-massif-des-articles, car ta règle pour la réécriture d'url, n'inclue pas les espaces et puis c'est déconseillé d'avoir des espaces entre les caratères dans une url.

jvnet
Auteur

Oui, c'est ça, c'est une redirection dans le .htaccess (une petite mesure de securité)

jvnet
Auteur

Ok Lartak, je comprend mieux votre logique, donc, il faut que je traite en amont les espaces dans mes urls ? Cependant, j'ai fait un test en dur en passant une url sans espace à ma règle de url rewrite, rien n'y fait, le problème vient-il vraiment des espaces dans le nom des catégories ? je me le demande. mais c'est une belle approche. je vais y remédier après coup.
Par contre, quelque chose très intéressante que t'as évoqué, "ma règle de réécriture ne contient pas d'espaces", ça c'est une piste à exploiter . Comment je pourrais ajouter des espaces à ma règle de réécriture ?