Url Rewriting : La boucle sans fin de la mort.

Discussion dans 'URL Rewriting et .htaccess' créé par lesnouvelles, 13 Janvier 2005.

  1. lesnouvelles
    lesnouvelles Nouveau WRInaute
    Inscrit:
    6 Janvier 2005
    Messages:
    8
    J'aime reçus:
    0
    Bonjour !

    Mon souci semble un problème courant, mais je n'ai pas trouvé de réponse définitive dans les forums jusqu'à présent.

    Je réécris les pages machin.html en pages php?var=xxx et je souhaite que Google, qui connait déjà les pages php, ne les référence plus mais indexe plutôt leur équivalent html, censé être désormais l'accès "public" du site.

    Prenons un exemple simple sans variables (et qui bien sûr ne marche pas !) :

    Code:
    RewriteEngine On
    RewriteBase /
    
    RewriteRule	^index\.html$ /index\.php [L]
    RewriteRule	^index\.php$ http://domaine\.com/index\.html [R=301,L]
    
    A première vue, j'imagine qu'un appel à index.html sera donc réécrit en index.php et le traitement s'arrêtera là. Tandis qu'un appel à index.php sera renvoyé définitivement vers index.html dans un premier temps, puis réécrit en index.php et ça s'arrêtera là toujours grâce au flag [L] de la première ligne.

    Oui mais voilà, ça marche pas. On dirait que le flag [L] n'est pas pris en compte. A l'appel de l'une ou l'autre des pages j'entre dans une boucle de redirections sans fin. J'ai l'impression d'avoir tout essayé, rien n'y fait (en changeant l'ordre des règles, en supprimant l'appel via -http://domaine.com, etc...).

    Pourtant, sur un code aussi simple avec deux pages, ça devrait pas être trop compliqué, hein ? :( L'UR elle-même fonctionne à merveille, c'est juste "l'UR inversé" qui pose un problème et me coûte mes derniers cheveux.

    Je sais bien que je peux aussi interdire à Google d'indexer les pages .php dans le fichier robots.txt, mais je n'ai pas envie de perdre le bénéfice du référencement et le pr des pages, donc je tiens à ce que le robot sache que ce sont bien toujours les mêmes pages...

    Quelqu'un aurait une idée ?

    Merci !
     
  2. sietjp
    sietjp WRInaute occasionnel
    Inscrit:
    14 Décembre 2003
    Messages:
    476
    J'aime reçus:
    1
    personellement je conseille de rajouter un paramètre au php découlant du html et de faire une redirection dans le php uniquement si ce paramètre est présent avec header(...).

    .htaccess
    Code:
    RewriteEngine On
    RewriteBase /
    
    RewriteRule	^index\.html$ /index\.php?rewrite=1 [L]
    
    PHP
    Code:
    if ($rewrite!=1) {
        header("301 etc...");
        header("Location etc...");
    }
    
    [edit] $rewrite!=1
     
  3. lesnouvelles
    lesnouvelles Nouveau WRInaute
    Inscrit:
    6 Janvier 2005
    Messages:
    8
    J'aime reçus:
    0
    En fait mon problème est inverse : l'appel du html et sa réécriture en php marche bien, mais le problème est lorsqu'on appelle directement la page php... c'est là que je voudrais faire une redirection permanente vers la page html sans entrer dans une boucle sans fin lors de la ré-réécriture en php. Je pense que si seulement le flag [L] faisait son boulot chez moi, ça devrait marcher, non ? :(

    Ou alors j'ai raté quelque chose dans ton code :)

    Merci en tout cas !
     
  4. lesnouvelles
    lesnouvelles Nouveau WRInaute
    Inscrit:
    6 Janvier 2005
    Messages:
    8
    J'aime reçus:
    0
    Bon, je me réponds tout seul, ça pourra aider du monde :

    la solution consiste à passer une variable à la première réécriture et à ne procéder à la seconde que si cette variable n'est pas mise.

    Ex :
    Code:
    RewriteRule	^index\.html$ /index.php [L,E=OK:1]
    
    RewriteCond %{ENV:REDIRECT_OK} !=1
    RewriteRule	^index\.php$ /index\.html [R=301]
    
    Tout le secret était de savoir qu'on peut passer des variables d'un appel à l'autre...
     
  5. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
  6. joxp
    joxp WRInaute discret
    Inscrit:
    20 Juillet 2006
    Messages:
    122
    J'aime reçus:
    0
    Re:

    ça a résolu également mon problème, mais je ne comprends pas le lien entre

    RewriteRule ^index\.html$ /index.php [L,E=OK:1]
    # et
    RewriteCond %{ENV:REDIRECT_OK} !=1
    RewriteRule ^index\.php$ /index\.html [R=301]
     
  7. joxp
    joxp WRInaute discret
    Inscrit:
    20 Juillet 2006
    Messages:
    122
    J'aime reçus:
    0
    apres quelques recherche, j'ai trouvé :


    RewriteRule ^index\.html$ /index.php [L,E=maVar:1]

    RewriteCond %{ENV:REDIRECT_maVar} !=1
    RewriteRule ^index\.php$ /index\.html [R=301]
     
Chargement...
Similar Threads - Rewriting boucle fin Forum Date
URL rewriting: boucle infinie URL Rewriting et .htaccess 15 Février 2006
URL Rewriting qui boucle? Netlinking, backlinks, liens et redirections 14 Mai 2008
Paramètres urls & urlrewriting => alphabétiques ou codés ? Problèmes de référencement spécifiques à vos sites 30 Mars 2022
Problème url rewriting et redirection URL Rewriting et .htaccess 4 Février 2022
URL rewriting d'images URL Rewriting et .htaccess 22 Janvier 2022
petit soucis url rewriting URL Rewriting et .htaccess 17 Janvier 2022
url rewriting ne fonctionne pas chez moi URL Rewriting et .htaccess 4 Août 2021
URL rewriting et REGEX bonnes pratiques Développement d'un site Web ou d'une appli mobile 9 Septembre 2020
supprimer /index.html sans url rewriting, possible ? URL Rewriting et .htaccess 13 Novembre 2019
Je bloque sur le rewriting des URL contenant un ? URL Rewriting et .htaccess 3 Septembre 2019
récupération du get après rewriting URL Rewriting et .htaccess 21 Juin 2019
Ralentissement url rewriting URL Rewriting et .htaccess 1 Mai 2019
URL Rewriting Débuter en référencement 17 Avril 2019
Conflit de redirection 301 et Urlrewriting Netlinking, backlinks, liens et redirections 20 Février 2019
URL REWRITING et redirection 301 URL Rewriting et .htaccess 24 Janvier 2019
URL Rewriting : difficultés avec RewriteCond ? URL Rewriting et .htaccess 5 Décembre 2018
Résolu URL Rewriting : Garder l'adresse non transformée dans le navigateur URL Rewriting et .htaccess 2 Décembre 2018
Mes débuts dans l'URL Rewriting URL Rewriting et .htaccess 14 Novembre 2018
Url rewriting Techniques avancées de référencement 22 Octobre 2018
URL rewriting et redirections après restauration post-piratage Débuter en référencement 29 Septembre 2018