Problème variable URL Rewriting

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

Guigui13
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 1
Inscription: 30 Déc 2009

Problème variable URL Rewriting

Message le Mer Déc 30, 2009 21:07

Bonsoir à tous,

J'ai besoin de mettre en place l'URL Rewriting pour mon site.
Voici quel est mon htaccess pour le moment :

Code: Tout sélectionner
RewriteEngine On

# REWRITE POUR TELECHARGEMENTS
RewriteRule ^index\.html$ /telechargementsims3/index.php [QSA,L,NC]
RewriteRule ^telecharger-([a-z0-9_-]*)\.html$ /telechargementsims3/view_dl.php?cat=$1 [QSA,L,NC]
RewriteRule ^ajout-([a-z0-9_-]*)\.html$ /telechargementsims3/ajout_dl.php?cat=$1 [QSA,L,NC]
RewriteRule ^traitement-([a-z0-9_-]*)\.html$ /telechargementsims3/traitement_dl.php?cat=$1 [QSA,L,NC]
RewriteRule ^telecharger-([a-z0-9_-]*)-([0-9]+)\.html$ /telechargementsims3/view_dl.php?cat=$1&id=$2 [QSA,L,NC]


Seulement, pour la dernière réécriture, cela ne fonctionne pas. Dans mon fichier view_dl.php, je redirige vers l'index si $_GET['cat'] est différent de 'truc' (par exemple). Et en entrant l'url http://www.monsite.com/telechargementsims3/telecharger-truc-1.html, je suis redirigé vers l'index de mon site.

Je ne vois pas d'où peut venir ce comportement... Si quelqu'un peut m'éclairer. ;)

Merci d'avance et bonne soirée,

Guigui13

EDIT: Finalement, en passant la dernière réécriture en première, cela fonctionne. Je ne comprends cependant pas pourquoi...


forty
WRInaute passionné
WRInaute passionné
 
Messages: 1701
Inscription: 30 Oct 2008

Re: Problème variable URL Rewriting

Message le Mer Déc 30, 2009 21:46

c'est normal car les règles sont évalués dans l'ordre. Comme "truc-1" match le pattern "[a-z0-9_-]*" c'est la première règle qui est appliquée. Tu te retrouves avec $_GET['cat'] = truc-1 => redirection vers l'index


bgdc
WRInaute impliqué
WRInaute impliqué
 
Messages: 723
Inscription: 23 Mai 2005

Re: Problème variable URL Rewriting

Message le Mer Déc 30, 2009 21:46

Bonsoir,

En fait c'est pas trop dur a comprendre.
Dans ton cas, tu ne passais jamais pas la dernière règle, mais plutôt par celle ci :

Code: Tout sélectionner
RewriteRule ^telecharger-([a-z0-9_-]*)\.html$ /telechargementsims3/view_dl.php?cat=$1 [QSA,L,NC]


Dans un htaccess, tu dois toujours mettre la règle la plus contraignante en haut et la plus généraliste en bas.

Relis bien ton fichier et tu te rendra compte par toi meme que la 1ere condition est vérifié avec un [L], donc il n'ira pas voir ce qui se passe en dessous :-)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google goo.gl

  • Analyse des backlinks
    Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
  • Recherche de citations d'un site en texte brut
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité