.htaccess : incompréhension
7 messages • Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
.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 impliqué

- Messages: 425
- Inscription: Jeu Juin 17, 2004 9:56
Et en virant le RewriteCond (Uniquement pour le test) sa pose toujours problême ?
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 impliqué

- Messages: 273
- Inscription: Ven Oct 21, 2005 13:33
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]
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 impliqué

- Messages: 273
- Inscription: Ven Oct 21, 2005 13:33
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]
...
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 :
- Article sur le fichier .htaccess
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- Comment éviter les contenus dupliqués (avec/sans le www)
- 3ème partie de l'article .htaccess : les réécritures conditionnelles
- Aperçu des différents types de redirection
- Google obtient un brevet sur le Social Bookmarking
- Forum Google Analytics sur WebRankInfo
- L'URL Rewriting expliqué aux débutants
- Analyse complète du PageRank de Google
- Découpage du forum webmaster en 2 forums
- RESOLU Grande incompréhension pour les htaccess, petite aide
- incomprehension
- incompréhension totale :o
- incomprehension sitemap
- Incomprehension face à mon site .com et .fr
- Les robots googles, incompréhension...
- Incompréhension dans la réecriture d'url
- pages related..incompréhension !
- Incompréhension totale = grand désarroi
- Incompréhension ou google déconne ...
- incomprehension comportement google
- Incomprehension sur indexation google.
- Incompréhension dans le référencement de mon site sur google
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


le forum