.htaccess : incompréhension
7 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- jvgamers
- WRInaute discret

- Messages: 92
- Inscription: 13 Juil 2004
.htaccess : incompréhension
Bonjour à tous,
J'ai un petit problème avec un htaccess, à savoir que le résultat me déroute un peu.
Voilà ce que je veux :
SI Condition
Alors :
Règle 1
Règle 2
Règle 3...
Or, j'ai fais à peu près cela :
RewriteCond Condition
RewriteRule ^/page1.html$ index.php?var1=ok [QSA,L]
RewriteRule ^/page2.html$ index.php?var2=ok [QSA,L]
RewriteRule ^/(.*) index.php?var3=ok [QSA,L]
Seulement, au lieu de s'arrêter comme je le veux à la première règle fonctionnelle, il continu malgré tout après avoir réécrit une première fois l'url.
Du coup, si je tape page1.html, je tombe sur index.php?var3=ok&var1=ok.
Or, moi je voudrais dans ce cas avoir seulement index.php?var1=ok.
Comment faire ? J'ai des idées de pourquoi ca ne fonctionne pas, mais aucune idée de comment résoudre le problème.
J'ai un petit problème avec un htaccess, à savoir que le résultat me déroute un peu.
Voilà ce que je veux :
SI Condition
Alors :
Règle 1
Règle 2
Règle 3...
Or, j'ai fais à peu près cela :
RewriteCond Condition
RewriteRule ^/page1.html$ index.php?var1=ok [QSA,L]
RewriteRule ^/page2.html$ index.php?var2=ok [QSA,L]
RewriteRule ^/(.*) index.php?var3=ok [QSA,L]
Seulement, au lieu de s'arrêter comme je le veux à la première règle fonctionnelle, il continu malgré tout après avoir réécrit une première fois l'url.
Du coup, si je tape page1.html, je tombe sur index.php?var3=ok&var1=ok.
Or, moi je voudrais dans ce cas avoir seulement index.php?var1=ok.
Comment faire ? J'ai des idées de pourquoi ca ne fonctionne pas, mais aucune idée de comment résoudre le problème.
- magic corp.
- WRInaute occasionnel

- Messages: 428
- Inscription: 17 Juin 2004
Et en virant le RewriteCond (Uniquement pour le test) sa pose toujours problême ?
- jvgamers
- WRInaute discret

- Messages: 92
- Inscription: 13 Juil 2004
Malheureusement non, je ne peux pas, il est nécessaire et je plante mon site si je le vire.
En fait j'ai justement l'impression que la condition s'applique sur tous les rewrite rule jusqu'à ce qu'une règle soit effective, là il trouve un [L] et il sort de la condition, mais il continu quand même à appliquer les règles suivantes.
Bref, je ne fais que supposer, il n'empêche que c'est assez handicapant !
En fait j'ai justement l'impression que la condition s'applique sur tous les rewrite rule jusqu'à ce qu'une règle soit effective, là il trouve un [L] et il sort de la condition, mais il continu quand même à appliquer les règles suivantes.
Bref, je ne fais que supposer, il n'empêche que c'est assez handicapant !
- ChezThierry
- WRInaute occasionnel

- Messages: 273
- Inscription: 21 Oct 2005
Normalement, le [L] devrait effectivement empécher les règles suivantes de s'appliquer. J'ai déjà vu ce comportement, je ne sais pas ce qui le déclenche.
Le mieux, pour contourner le problème, c'est de faire en sorte que la dernière règle ne s'applique que si l'on a pas déjà une url du type index.php... ainsi :
Le mieux, pour contourner le problème, c'est de faire en sorte que la dernière règle ne s'applique que si l'on a pas déjà une url du type index.php... ainsi :
- Code: Tout sélectionner
RewriteCond Condition
RewriteRule ^/page1.html$ index.php?var1=ok [QSA,L]
RewriteRule ^/page2.html$ index.php?var2=ok [QSA,L]
RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule ^/(.*) index.php?var3=ok [QSA,L]
- jvgamers
- WRInaute discret

- Messages: 92
- Inscription: 13 Juil 2004
J'y ais pensé, le problème c'est que j'ai largement simplifié mon htaccess dans mon exemple... J'ai une vingtaine de règle et d'url, et à la fin seulement les 2 règles qui s'appliquent "une seconde fois"... Alors je pourrais mettre 20 conditions, mais j'aimerais une solution plus simple et logique... J'ai un peu l'impression de trop bidouiller sinon 
- ChezThierry
- WRInaute occasionnel

- Messages: 273
- Inscription: 21 Oct 2005
Ok, je comprends, mais comme je n'ai aucune idée de pourquoi ton [L] ne fonctionne pas, je ne peux que recommander une autre bidouille :
ajouter S=50 après chaque L (pour skipper les 50 prochaines règles)
ajouter S=50 après chaque L (pour skipper les 50 prochaines règles)
- Code: Tout sélectionner
RewriteRule ^/page1.html$ index.php?var1=ok [QSA,L,S=50]
RewriteRule ^/page2.html$ index.php?var2=ok [QSA,L,S=50]
...
- jvgamers
- WRInaute discret

- Messages: 92
- Inscription: 13 Juil 2004
Bon, j'ai pu faire le test sans les RewriteCond, ca ne change rien. Quand au S=50, ca ne fonctionne pas, les règles qui suivent sont tout de même éxécutées... A n'y rien comprendre, je désespére :p
Pour info tout de même, je suis sur dédié, donc si modif il y a à faire niveau config de apache, aucun soucis.
EDIT: je viens de me rendre compte d'un truc super bizarre... Si je vire ma dernière règle, plus rien ne fonctionne. (erreur 500 : maximum of redirections... dans les logs apache)
A l'heure actuelle, elle est construite comme suit :
RewriteRule ^([a-zA-Z0-9].(.*))$ /$1 [QSA,L]
Allez savoir pourquoi si je ne la met pas, plus rien ne fonctionne...
Pour info tout de même, je suis sur dédié, donc si modif il y a à faire niveau config de apache, aucun soucis.
EDIT: je viens de me rendre compte d'un truc super bizarre... Si je vire ma dernière règle, plus rien ne fonctionne. (erreur 500 : maximum of redirections... dans les logs apache)
A l'heure actuelle, elle est construite comme suit :
RewriteRule ^([a-zA-Z0-9].(.*))$ /$1 [QSA,L]
Allez savoir pourquoi si je ne la met pas, plus rien ne fonctionne...
7 messages
• Page 1 sur 1
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 :
- URL Rewriting via .htaccess > incompréhension
- RESOLU Grande incompréhension pour les htaccess, petite aide
- incomprehension
- incompréhension totale :o
- incomprehension sitemap
- Incompréhension du positionnement récent
- Mauvais référencement, incompréhension
- pages related..incompréhension !
- Incompréhension ou google déconne ...
- incomprehension comportement google
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
