Pb avec url rewriting...

  • Auteur de la discussion Auteur de la discussion XoSt
  • Date de début Date de début
WRInaute passionné
Bonjour, j'ai un pb d'url rewriting...

l'url :
Code:
index.php?cat=annonces&annonces=sites

L'url devrait etre :
Code:
annonces-sites.html

Le htaccess :
Code:
ErrorDocument 404 / 404.php
RewriteEngine on 
RewriteRule ^([a-z,A-Z,0-9,_]+)\.html$ index.php?cat=$1 [L]
RewriteRule ^([a-z,A-Z,0-9,_]+)-([a-z,A-Z,0-9,_]+)\.html$ index.php?cat=$1&membres=$2 [L]
RewriteRule ^([a-z,A-Z,0-9,_]+)-([a-z,A-Z,0-9,_]+)-([a-z,A-Z,0-9,_]+)\.html$ index.php?cat=$1&membres=$2&id=$3 [L]
RewriteRule ^([a-z,A-Z,0-9,_]+)-([a-z,A-Z,0-9,_]+)\.html$ index.php?cat=$1&annonces=$2 [L]
RewriteRule ^([a-z,A-Z,0-9,_]+)-([a-z,A-Z,0-9,_]+)-([a-z,A-Z,0-9,_]+)\.html$ index.php?cat=$1&annonces=$2&id=$3 [L]
RewriteRule ^([a-z,A-Z,0-9,_]+)/([a-z,A-Z,0-9,_]+)\.html$ $1/$2 [L]
RewriteRule ^([a-z,A-Z,0-9,_]+)/([a-z,A-Z,0-9,_]+)/([a-z,A-Z,0-9,_]+)\.html$ $1/$2/$3 [L]


Avec ce meme code, cette url fonctionne :
Code:
index.php?cat=membres&membres=recupasse
Code:
membres-recupasse.html

Ma question, pourquoi l'un fonctionne et pas l'autre ? merci.
 
Olivier Duffez (admin)
Membre du personnel
tu as mis 2 fois la ligne avec
Code:
RewriteRule ^([a-z,A-Z,0-9,_]+)-([a-z,A-Z,0-9,_]+)\.html$
j'ai l'impression. avec le [L] il ne va pas lire plus loin, donc la 1ere règle s'applique, celle sous la forme
Code:
index.php?cat=$1&membres=$2 [L]
au passage, ta 1ere ligne devrait être
Code:
ErrorDocument 404 /404.php
 
WRInaute passionné
Maintenent j'ai ca :
Code:
ErrorDocument 404 /404.php
RewriteEngine on 
RewriteRule ^([a-z,A-Z,0-9,_]+)\.html$ index.php?cat=$1 [L]
RewriteRule ^([a-z,A-Z,0-9,_]+)-([a-z,A-Z,0-9,_]+)\.html$ index.php?cat=$1&page=$2 [L]
RewriteRule ^([a-z,A-Z,0-9,_]+)-([a-z,A-Z,0-9,_]+)\.html$ index.php?cat=$1&membres=$2 [L]
RewriteRule ^([a-z,A-Z,0-9,_]+)-([a-z,A-Z,0-9,_]+)-([a-z,A-Z,0-9,_]+)\.html$ index.php?cat=$1&membres=$2&id=$3 [L]
RewriteRule ^([a-z,A-Z,0-9,_]+)/([a-z,A-Z,0-9,_]+)\.html$ $1/$2 [L]
RewriteRule ^([a-z,A-Z,0-9,_]+)/([a-z,A-Z,0-9,_]+)/([a-z,A-Z,0-9,_]+)\.html$ $1/$2/$3 [L]

Mais l'url avec membres ne fonctionne pas...
 
WRInaute occasionnel
En l'état, les conditions de tes lignes 2 et 3 s'appliquent pour annonces-sites.html et membres-recupasse.html et sont donc en conflit. La ligne 2 prend la main et tu obtiens une réécriture en index.php?cat=annonces&page=sites et index.php?cat=membres&page=recupasse

En créant un cas spécifique pour une URL commencant par membres, ca pourrait devenir
Code:
RewriteRule ^([a-z,A-Z,0-9,_]+)\.html$ index.php?cat=$1 [L]
RewriteRule ^membres-([a-z,A-Z,0-9,_]+)\.html$ index.php?cat=membres&membres=$1 [L] 
RewriteRule ^([a-z,A-Z,0-9,_]+)-([a-z,A-Z,0-9,_]+)\.html$ index.php?cat=$1&page=$2 [L] 
RewriteRule ^([a-z,A-Z,0-9,_]+)-([a-z,A-Z,0-9,_]+)-([a-z,A-Z,0-9,_]+)\.html$ index.php?cat=$1&membres=$2&id=$3 [L]

La quatrième ligne pourrait aussi être modifiée si elle commence toujours par membres.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut