Url Rewriting : La boucle sans fin de la mort.

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

lesnouvelles
Nouveau WRInaute
 
Messages: 11
Inscription: Jeu Jan 06, 2005 19:30

Url Rewriting : La boucle sans fin de la mort.

Message le Jeu Jan 13, 2005 11:06

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: Tout sélectionner
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 !


sietjp
WRInaute passionné
WRInaute passionné
 
Messages: 622
Inscription: Dim Déc 14, 2003 21:05

Re: Url Rewriting : La boucle sans fin de la mort.

Message le Jeu Jan 13, 2005 18:30

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: Tout sélectionner
RewriteEngine On
RewriteBase /

RewriteRule   ^index\.html$ /index\.php?rewrite=1 [L]


PHP
Code: Tout sélectionner
if ($rewrite!=1) {
    header("301 etc...");
    header("Location etc...");
}


[edit] $rewrite!=1

lesnouvelles
Nouveau WRInaute
 
Messages: 11
Inscription: Jeu Jan 06, 2005 19:30

Message le Ven Jan 14, 2005 10:31

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 !

lesnouvelles
Nouveau WRInaute
 
Messages: 11
Inscription: Jeu Jan 06, 2005 19:30

Message le Ven Jan 14, 2005 14:26

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: Tout sélectionner
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...
Dernière édition par lesnouvelles le Ven Jan 14, 2005 18:40, édité 1 fois.


e-kiwi
Modérateur
Modérateur
 
Messages: 13817
Inscription: Mar Déc 23, 2003 9:04

Message le Ven Jan 14, 2005 14:36

Je suis tombé sur cette discution fort interressante sur les boucles d url rewriting, je vous conseille de lire l article en entier :-)

http://forum.les-basics-nfrance.com/rea ... 85&t=36385


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