[Résolu] Conflit dans les régles de réécriture.

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

yann123
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Lun Avr 11, 2005 21:39

[Résolu] Conflit dans les régles de réécriture.

Message le Lun Jan 07, 2008 17:51

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 :
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&region=$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&region=$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.

tonguide
WRInaute accro
WRInaute accro
 
Messages: 1242
Inscription: Ven Nov 28, 2003 18:55

Message le Lun Jan 07, 2008 18:15

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 "/")

yann123
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Lun Avr 11, 2005 21:39

Message le Lun Jan 07, 2008 18:39

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.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3326
Inscription: Mar Nov 16, 2004 18:27

Message le Lun Jan 07, 2008 19:47

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]

yann123
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Lun Avr 11, 2005 21:39

Message le Lun Jan 07, 2008 20:31

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]

tonguide
WRInaute accro
WRInaute accro
 
Messages: 1242
Inscription: Ven Nov 28, 2003 18:55

Message le Lun Jan 07, 2008 23:47

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.

yann123
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Lun Avr 11, 2005 21:39

Message le Mar Jan 08, 2008 0:53

J'ai résolu mon problème en créant une nouvelle page "page.php".
Ma page index ne me sert que pour ma page d'accueil et ma page " page.php" pour les autres pages principale. Du coup plus de conflit.

choomz
Nouveau WRInaute
 
Messages: 5
Inscription: Lun Avr 14, 2008 13:38

Reouverture : PB d'affichage dans la barre d'adresse

Message le Lun Avr 14, 2008 13:52

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.
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 :)

yann123
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Lun Avr 11, 2005 21:39

Message le Lun Avr 14, 2008 14:06

essai avec

Code: Tout sélectionner
[QSA,L,R=301]

choomz
Nouveau WRInaute
 
Messages: 5
Inscription: Lun Avr 14, 2008 13:38

Message le Lun Avr 14, 2008 14:28

helas non, aucun changements, toujours mon url non réecrite qui s'affiche.

tonguide
WRInaute accro
WRInaute accro
 
Messages: 1242
Inscription: Ven Nov 28, 2003 18:55

Message le Lun Avr 14, 2008 14:35

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.

yann123
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Lun Avr 11, 2005 21:39

Message le Lun Avr 14, 2008 14:38

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.

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.

choomz
Nouveau WRInaute
 
Messages: 5
Inscription: Lun Avr 14, 2008 13:38

Message le Lun Avr 14, 2008 14:41

alors c'est peut être moi qui ai loupé un truc du coup :

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 ?

yann123
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Lun Avr 11, 2005 21:39

Message le Lun Avr 14, 2008 14:49

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

choomz
Nouveau WRInaute
 
Messages: 5
Inscription: Lun Avr 14, 2008 13:38

Message le Lun Avr 14, 2008 15:14

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 ... :evil:

[Résolu] Conflit dans les régles de réécriture.

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 :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités