[Résolu] Conflit dans les régles de réécriture.
18 messages • Page 1 sur 2 • 1, 2
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
[Résolu] Conflit dans les régles de réécriture.
Bonsoir,
Je me bat avec mon .htaccess et je crois que pour aujourd'hui, il a gagné, car je m'y perd complètement.
Je ne vous explique pas tous, ce serait compliqué, mais en repartant de 0, voici le premier conflit que je rencontre.
J'ai deux règles de réécriture url-rewritting qui fonctionnent bien quand elles sont seules, mais lorsque j'ajoute des redirections 301 rien ne va plus.
Voici le code qui fonctionne :
Donc ça, ça marche.
Si je rajoute deux ligne [R=301] pour rediriger index.php et index.html vers la racine du site, comme ci-dessous. La deuxième règle ne fonctionne plus.
La page s'affiche correctement, mais l'url n'est pas réécrite dans la barre d'adresse du navigateur.
J'ai plusieurs R=301 à faire mais déjà la, en ajoutant index.html et index.php, ça plante.
Quelqu'un voit-il se qui ne va pas?
J'ai essayé de les mettre au début et a la fin mais j'ai le même résultats. La deuxième règles de réécriture plante.
En espérant avoir réussi a me faire comprendre.
Merci d'avance.
Je me bat avec mon .htaccess et je crois que pour aujourd'hui, il a gagné, car je m'y perd complètement.
Je ne vous explique pas tous, ce serait compliqué, mais en repartant de 0, voici le premier conflit que je rencontre.
J'ai deux règles de réécriture url-rewritting qui fonctionnent bien quand elles sont seules, mais lorsque j'ajoute des redirections 301 rien ne va plus.
Voici le code qui fonctionne :
- Code: Tout sélectionner
#--------------------------------------------------
# Répertoire : /index/
#--------------------------------------------------
# Le serveur doit suivre les liens symboliques :
Options +FollowSymlinks
# Activation du module de réécriture d'URL :
RewriteEngine on
#--------------------------------------------------
# Règles de réécriture d'URL :
#--------------------------------------------------
RewriteRule ^(.*)-([0-9]*)-(.*)-([0-9]{2})\.html$ /region.php?titreurl=$1&id_parametre=$2®ion=$3&code_region=$4 [L]
RewriteRule ^([a-z]*-[a-z]*)-([0-9]{2})\.html$ /index.php?titreurl=$1&id_parametre=$2 [L]
Donc ça, ça marche.
Si je rajoute deux ligne [R=301] pour rediriger index.php et index.html vers la racine du site, comme ci-dessous. La deuxième règle ne fonctionne plus.
La page s'affiche correctement, mais l'url n'est pas réécrite dans la barre d'adresse du navigateur.
- Code: Tout sélectionner
#--------------------------------------------------
# Répertoire : /index/
#--------------------------------------------------
# Le serveur doit suivre les liens symboliques :
Options +FollowSymlinks
# Activation du module de réécriture d'URL :
RewriteEngine on
#--------------------------------------------------
# Règles de réécriture d'URL :
#--------------------------------------------------
RewriteRule ^([a-z-]*)-([a-z-]*{2})-([0-9]{2})-([0-9]{2})\.html$ /region.php?titreurl=$1®ion=$2&id_parametre=$3&code_region=$4 [L]
RewriteRule ^([a-z-]*)-([0-9]{2})\.html$ /index.php?titreurl=$1&id_parametre=$2 [L]
RewriteRule index.html / [R=301,L]
RewriteRule index.php / [R=301,L]
J'ai plusieurs R=301 à faire mais déjà la, en ajoutant index.html et index.php, ça plante.
Quelqu'un voit-il se qui ne va pas?
J'ai essayé de les mettre au début et a la fin mais j'ai le même résultats. La deuxième règles de réécriture plante.
En espérant avoir réussi a me faire comprendre.
Merci d'avance.
Dernière édition par yann123 le Mar Jan 08, 2008 0:53, édité 1 fois.
Tu as essayé de mettre
RewriteRule index.html / [R=301,L]
RewriteRule index.php / [R=301,L]
Avant les 2 règles précédentes ?
(tu fais un rewrite vers l'index, et l'index tu l'envoi vers "/" donc au final, tu renvois t'as 2eme règles vers "/")
RewriteRule index.html / [R=301,L]
RewriteRule index.php / [R=301,L]
Avant les 2 règles précédentes ?
(tu fais un rewrite vers l'index, et l'index tu l'envoi vers "/" donc au final, tu renvois t'as 2eme règles vers "/")
Tu as essayé de mettre
RewriteRule index.html / [R=301,L]
RewriteRule index.php / [R=301,L]
Avant les 2 règles précédentes ?
Oui, avant ou après c'est le même résultat.
(tu fais un rewrite vers l'index, et l'index tu l'envoi vers "/" donc au final, tu renvois t'as 2eme règles vers "/")
Oui, ma page index qui est en php créé toutes mes pages principale à partir d'un id. Avec un isset si la variable id n'existe pas c'est que c'est la page d'accueil, sinon je construit ma page avec les paramètres liés à l'id.
[L] est pourtant censé arrêter la lecture des règles, donc en les mettant au début ça devrait marcher. j'ai l'impression que chez moi, ça ne marche pas.
- Code: Tout sélectionner
RewriteRule ^index\.html$ http://www.tonsite.ext/ [R=301,L]
ou
- Code: Tout sélectionner
RewriteRule ^index\.html$ / [R=301,L]
Code:
RewriteRule ^index\.html$ http://www.tonsite.ext/ [R=301,L]
ou
Code:
RewriteRule ^index\.html$ / [R=301,L]
Merci KOogar J'ai mis le code ci-dessous avant et après mes règles de réécriture. Dans les deux cas, j'ai toujours le même problème. La deuxième ligne de réécriture ne s'affiche pas réécrite dans la barre du navigateur.
- Code: Tout sélectionner
RewriteRule ^index\.html$ / [R=301,L]
RewriteRule ^index\.php$ / [R=301,L]
yann123 a écrit:[L] est pourtant censé arrêter la lecture des règles, donc en les mettant au début ça devrait marcher. j'ai l'impression que chez moi, ça ne marche pas.
Je sais bien, mais j'ai déjà eu des problèmes sur certains serveurs avec ce genre de chose.
Reouverture : PB d'affichage dans la barre d'adresse
Je me permet de répondre à un topic résolu car c'est celui que j'ai trouvé qui est le plus proche de mon probleme, je m'explique :
J'ai mis en place une regle de réecriture qui fonctionnait trés bien, seulement je me suis rendu compte que google n'indexait pas les pages comme une redirection 301, j'ai donc voulu rajouter ce parametre à la fin de la regle de réecriture, une fois rajouté la regle fonctionne toujours, seulement j'ai mon adresse non réecrite qui s'affiche dans la barre d'adresse du navigateur... Voici le code :
La regle qui fonctionnait bien mais qui ne m'indexait pas mes nouvelles pages auprés de google.
La nouvelle regle :
ou
Cette regle la marche également mais par contre dans la barre d'adresse j'ai par exemple :
(quand je dis qu'elle marche, le lien generé m'affiche bien la bonne page, mais pas dan l'url)
au lieu de :
Merci pour vos réponses
J'ai mis en place une regle de réecriture qui fonctionnait trés bien, seulement je me suis rendu compte que google n'indexait pas les pages comme une redirection 301, j'ai donc voulu rajouter ce parametre à la fin de la regle de réecriture, une fois rajouté la regle fonctionne toujours, seulement j'ai mon adresse non réecrite qui s'affiche dans la barre d'adresse du navigateur... Voici le code :
La regle qui fonctionnait bien mais qui ne m'indexait pas mes nouvelles pages auprés de google.
- Code: Tout sélectionner
RewriteRule ^(.)*-([0-9]+)-([0-9]+)\.html$ /agences.php?ag=$2&cat=$3 [L]
La nouvelle regle :
- Code: Tout sélectionner
RewriteRule ^(.)*-([0-9]+)-([0-9]+)\.html$ /agences.php?ag=$2&cat=$3 [L,R=301]
ou
- Code: Tout sélectionner
RewriteRule ^(.)*-([0-9]+)-([0-9]+)\.html$ /agences.php?ag=$2&cat=$3 [R=301,L]
Cette regle la marche également mais par contre dans la barre d'adresse j'ai par exemple :
(quand je dis qu'elle marche, le lien generé m'affiche bien la bonne page, mais pas dan l'url)
- Code: Tout sélectionner
http://www.url.fr/agences.php?ag=1&cat=1
au lieu de :
- Code: Tout sélectionner
http://www.url.fr/agence-region-chartres-quotidien-1-2.html
Merci pour vos réponses
Je comprend pas pourquoi tu as changé en rajoutant R=301
R=301 signifie redirection 301.
Donc ça fait une redirection vers la deuxième partie de ton rewrite. C'est à dire "agences.php?ag=1&cat=1 " donc forcement, ça l'affiche dans la barre d'adresse.
Par conséquent, ta première réécriture était la bonne.
Le soucis devait venir d'ailleurs quand Google ne t'indexait pas tes nouvelles pages avec le premier rewrite.
R=301 signifie redirection 301.
Donc ça fait une redirection vers la deuxième partie de ton rewrite. C'est à dire "agences.php?ag=1&cat=1 " donc forcement, ça l'affiche dans la barre d'adresse.
Par conséquent, ta première réécriture était la bonne.
Le soucis devait venir d'ailleurs quand Google ne t'indexait pas tes nouvelles pages avec le premier rewrite.
Pourquoi veux tu mettre R=301 après ta règle ?
Je pense que ça n'a rien a faire la puisque ta règle est une règle de réécriture.
Ceci est une règle de réécriture uniquement et non de redirection.
Je pense que ça n'a rien a faire la puisque ta règle est une règle de réécriture.
RewriteRule ^(.)*-([0-9]+)-([0-9]+)\.html$ /agences.php?ag=$2&cat=$3 [L,R=301]
Ceci est une règle de réécriture uniquement et non de redirection.
alors c'est peut être moi qui ai loupé un truc du coup :
comment faire comprendre à google que ma page
s'appele désormais
le simple fait de mettre ma premiere regle de réecriture va permettre la réindexation url des pages non réecrites en pages réecrites et google va comprendre que c'est les memes ?
comment faire comprendre à google que ma page
- Code: Tout sélectionner
http://www.url.fr/agences.php?id=45&cat=45
s'appele désormais
- Code: Tout sélectionner
http://www.url.fr/agence-region-chartres-quotidien-45-45.html
le simple fait de mettre ma premiere regle de réecriture va permettre la réindexation url des pages non réecrites en pages réecrites et google va comprendre que c'est les memes ?
- Code: Tout sélectionner
RewriteRule ^agences.php?id=45&cat=45 /agence-region-chartres-quotidien-45-45.html [R=301]
Je pense que ca doit marcher
Helas non cela me fait la même choe qu'avec [L,R=301] ou [QSA,L,R=301] , j'en déduis donc qu'il n'aime pas les [R=301] lorsque l'on déclare une regle de réecriture ....
mais google va t'il finir par comprendre que mes pages non réecrites sont les mêmes que les pages réecrites ??
le [L] est il suffisant ??
comment s'arracher les cheveux sur un truc qui fonctionne ...
mais google va t'il finir par comprendre que mes pages non réecrites sont les mêmes que les pages réecrites ??
le [L] est il suffisant ??
comment s'arracher les cheveux sur un truc qui fonctionne ...
18 messages • Page 1 sur 2 • 1, 2
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 :
- Accord commercial entre Google et l'agence Associated Press
- Optimiser le référencement d'un forum phpBB : réécriture d'URL
- L'URL Rewriting expliqué aux débutants
- Ecrire un sitemap pour Google News
- Matt Cutts déclare la guerre au spamdexing en français (et autres langues)
- 10 règles pour optimiser son référencement sur Google
- L'avenir de la presse en ligne passe par un meilleur référencement
- Nouvelle version de Yahoo Site Explorer (août 2008)
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- WebRankInfo lance un forum de recherche de partenariats
- [Résolu] Conflit entre 3 règles d'URL rewriting
- Deux regles en conflit
- Conflit entre règles de rewriting (RewriteRule)
- Mes règles d'écriture entrent en conflit....
- Plusieurs regles qui rentrent en conflit...
- générateur de règles de réécriture
- Trops de règles de réécriture htaccess?
- Changement règles réécriture et référencement
- Comment ajouter plusieurs règles de réécriture ?
- exception dans les règles de réécriture
- Besoin d'aide pour mes regles de réécriture...
- [SOUCIS RESOLU] Conflit entre input hidden ? Etrange...
- [RESOLU]Url rewriting qui marche pas [conflit nom fichier]
- [résolu] Problème de règles
- [Résolu] Différencier les règles
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum