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

Discussion dans 'URL Rewriting et .htaccess' créé par yann123, 7 Janvier 2008.

  1. yann123
    yann123 WRInaute discret
    Inscrit:
    11 Avril 2005
    Messages:
    128
    J'aime reçus:
    0
    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:
    #--------------------------------------------------
    # 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:
    #--------------------------------------------------
    # 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.
     
  2. tonguide
    tonguide WRInaute passionné
    Inscrit:
    28 Novembre 2003
    Messages:
    1 158
    J'aime reçus:
    0
    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 "/")
     
  3. yann123
    yann123 WRInaute discret
    Inscrit:
    11 Avril 2005
    Messages:
    128
    J'aime reçus:
    0
    Oui, avant ou après c'est le même résultat.

    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.
     
  4. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 643
    J'aime reçus:
    81
    Code:
    RewriteRule ^index\.html$  http://www.tonsite.ext/  [R=301,L] 
    ou

    Code:
    RewriteRule ^index\.html$  /  [R=301,L] 
     
  5. yann123
    yann123 WRInaute discret
    Inscrit:
    11 Avril 2005
    Messages:
    128
    J'aime reçus:
    0
    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:
    RewriteRule ^index\.html$  /  [R=301,L]
    RewriteRule ^index\.php$  /  [R=301,L]
    
     
  6. tonguide
    tonguide WRInaute passionné
    Inscrit:
    28 Novembre 2003
    Messages:
    1 158
    J'aime reçus:
    0
    Je sais bien, mais j'ai déjà eu des problèmes sur certains serveurs avec ce genre de chose.
     
  7. yann123
    yann123 WRInaute discret
    Inscrit:
    11 Avril 2005
    Messages:
    128
    J'aime reçus:
    0
    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.
     
  8. choomz
    choomz Nouveau WRInaute
    Inscrit:
    14 Avril 2008
    Messages:
    5
    J'aime reçus:
    0
    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.
    Code:
    RewriteRule ^(.)*-([0-9]+)-([0-9]+)\.html$ /agences.php?ag=$2&cat=$3 [L]
    

    La nouvelle regle :
    Code:
    RewriteRule ^(.)*-([0-9]+)-([0-9]+)\.html$ /agences.php?ag=$2&cat=$3 [L,R=301]
    
    ou
    Code:
    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:
    http://www.url.fr/agences.php?ag=1&cat=1
    
    au lieu de :
    Code:
    http://www.url.fr/agence-region-chartres-quotidien-1-2.html
    
    Merci pour vos réponses :)
     
  9. yann123
    yann123 WRInaute discret
    Inscrit:
    11 Avril 2005
    Messages:
    128
    J'aime reçus:
    0
    essai avec

    Code:
    [QSA,L,R=301]
     
  10. choomz
    choomz Nouveau WRInaute
    Inscrit:
    14 Avril 2008
    Messages:
    5
    J'aime reçus:
    0
    helas non, aucun changements, toujours mon url non réecrite qui s'affiche.
     
  11. tonguide
    tonguide WRInaute passionné
    Inscrit:
    28 Novembre 2003
    Messages:
    1 158
    J'aime reçus:
    0
    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.
     
  12. yann123
    yann123 WRInaute discret
    Inscrit:
    11 Avril 2005
    Messages:
    128
    J'aime reçus:
    0
    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.
     
  13. choomz
    choomz Nouveau WRInaute
    Inscrit:
    14 Avril 2008
    Messages:
    5
    J'aime reçus:
    0
    alors c'est peut être moi qui ai loupé un truc du coup :

    comment faire comprendre à google que ma page

    Code:
    http://www.url.fr/agences.php?id=45&cat=45
    
    s'appele désormais

    Code:
    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 ?
     
  14. yann123
    yann123 WRInaute discret
    Inscrit:
    11 Avril 2005
    Messages:
    128
    J'aime reçus:
    0
    Code:
    RewriteRule ^agences.php?id=45&cat=45  /agence-region-chartres-quotidien-45-45.html [R=301]
    
    Je pense que ca doit marcher
     
  15. choomz
    choomz Nouveau WRInaute
    Inscrit:
    14 Avril 2008
    Messages:
    5
    J'aime reçus:
    0
    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:
     
  16. yann123
    yann123 WRInaute discret
    Inscrit:
    11 Avril 2005
    Messages:
    128
    J'aime reçus:
    0
    Il faut que tu laisse ta regle précedente qui marchait

    1 règle de réécriture et une régle de redirection

    Code:
    RewriteRule ^(.)*-([0-9]+)-([0-9]+)\.html$ /agences.php?ag=$2&cat=$3 [L]
    RewriteRule ^agences.php?id=45&cat=45  /agence-region-chartres-quotidien-45-45.html [R=301] 
    
    La premiére réécrit tes url et la deuxiéme redirige ton ancienne url référencé et elle n'en redirige qu'une.

    tu dois le faire pour toutes les urls reférencé avec .php?...

    si tu as 50 pages, c'est 50 lignes, ou alors trouver une methode pour récupérer les paramétres et les reprendre dans la redirection.

    non, il va pas comprendre et va donc avoir deux pages identiques indexés.
    a ma connaissance, il n'aime pas ca.
     
  17. tonguide
    tonguide WRInaute passionné
    Inscrit:
    28 Novembre 2003
    Messages:
    1 158
    J'aime reçus:
    0
    Il faut que tu fasses une redirection 301 directement sur ton fichier "agences.php" (avec header(), tu trouveras ça sur ce forum)

    Tu mets par exemple une variable dans ton get, du style

    RewriteRule ^(.)*-([0-9]+)-([0-9]+)\.html$ /agences.php?ag=$2&cat=$3&rewrite=ok [L]

    Si tu vois que Rewrite=ok n'est pas définit, tu fais une redirection 301 vers la nouvelle URL que Google doit remplacer.

    Ainsi, quand toi, tes visiteurs ou google iront sur les anciennes URL, ils auront une redirection 301 vers les nouvelles URL, et tu ne changes rien à ton .htaccess (donc [L] et pas R=301)
     
  18. choomz
    choomz Nouveau WRInaute
    Inscrit:
    14 Avril 2008
    Messages:
    5
    J'aime reçus:
    0
    ok c'est bien ce qui me semblais, j'ai donc actuellement un probleme de duplicate content ...

    Merci a vous deux pour vos réponses, je vais tenter la redirection 301 en php pour eviter ca, car avec 1500 pages indexées, j'ai pas fini de manger du htaccess sinon ^^
     
Chargement...
Similar Threads - [Résolu] Conflit régles Forum Date
[Résolu] Conflit entre 3 règles d'URL rewriting URL Rewriting et .htaccess 1 Novembre 2006
[RESOLU]Url rewriting qui marche pas [conflit nom fichier] URL Rewriting et .htaccess 17 Janvier 2007
Problème images en https (forum phpbb) [résolu] Développement d'un site Web ou d'une appli mobile 18 Novembre 2017
[Résolu] Redirection 301 FR vers EN sur Prestashop uniquement sur outils Google ? Problèmes de référencement spécifiques à vos sites 11 Septembre 2017
[résolu] Passage à HTTPS, comment tester une page ? Développement d'un site Web ou d'une appli mobile 7 Septembre 2017
[Résolu] Redirection d'une famille d'URL URL Rewriting et .htaccess 9 Mars 2017
[Résolu] Diaporama et SEO Débuter en référencement 17 Janvier 2017
[résolu]Redirection monsite.fr/index.html sur monsite.fr et seo URL Rewriting et .htaccess 16 Janvier 2017
[resolu]Publicité facebook lié au compte instagram Facebook 12 Décembre 2016
[résolu] Récupérer des valeurs issues de javascript pour les mettre en base MySQL Développement d'un site Web ou d'une appli mobile 18 Juillet 2016
[résolu] Faire une redirection sauf pour mon adresse IP URL Rewriting et .htaccess 15 Juin 2016
[Résolu] 2 descriptions pour une même url selon requête Crawl et indexation Google, sitemaps 1 Juin 2016
[résolu] Action onchange sur FORM/SELECT qui ne fonctionne qu'à la première action ?!? Développement d'un site Web ou d'une appli mobile 31 Mai 2016
[résolu] Sessions : lire le contenu alors qu'on ne sait pas comment il est nommé... Développement d'un site Web ou d'une appli mobile 25 Mai 2016
[résolu] Avoir un paramètre de session "dynamique" ? Développement d'un site Web ou d'une appli mobile 25 Mai 2016
[résolu] Hauteur de div selon état d'un bouton radio Développement d'un site Web ou d'une appli mobile 23 Mai 2016
[résolu] recupération de flux xml et erreur encodage des caractères Développement d'un site Web ou d'une appli mobile 27 Janvier 2016
[résolu] Carte Google Maps avec "zones de densité" Développement d'un site Web ou d'une appli mobile 5 Novembre 2015
Balise NoIndex ignorée par Google? [résolu] Débuter en référencement 13 Janvier 2015
[Résolu] sites référents sans lien vers mon site Demandes d'avis et de conseils sur vos sites 7 Janvier 2015