Url Rewriting : La boucle sans fin de la mort.
7 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- lesnouvelles
- Nouveau WRInaute

- Messages: 11
- Inscription: 6 Jan 2005
Url Rewriting : La boucle sans fin de la mort.
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 !) :
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 !
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 ?
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 impliqué

- Messages: 624
- Inscription: 14 Déc 2003
Re: Url Rewriting : La boucle sans fin de la mort.
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
PHP
[edit] $rewrite!=1
.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: 6 Jan 2005
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 !
Ou alors j'ai raté quelque chose dans ton code
Merci en tout cas !
- lesnouvelles
- Nouveau WRInaute

- Messages: 11
- Inscription: 6 Jan 2005
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 :
Tout le secret était de savoir qu'on peut passer des variables d'un appel à l'autre...
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

- Messages: 15618
- Inscription: 23 Déc 2003
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
http://forum.les-basics-nfrance.com/rea ... 85&t=36385
7 messages
• Page 1 sur 1
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 :
- URL Rewriting qui boucle?
- URL rewriting: boucle infinie
- url avec et sans / à la fin
- Url avec chiffres à la fin
- Url avec l'id à la fin
- supprimer l'espace à la fin d'une url
- URL not found à la fin de mes adresses
- Pb de PHPSESSID à la fin des URL rewritées...
- Redirectpermanent et le ? de fin d'URL (entre URL Rewrité)
- Supprimer la fin des url avec une RedirectPermanent 301
- Tutoriel URL Rewriting
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- l'URL Rewriting expliqué aux débutants
- Optimiser le référencement d'un forum phpBB : réécriture d'URL
- Google supprime son annuaire basé sur DMOZ
- 3ème partie de l'article .htaccess : les réécritures conditionnelles
- Google met fin à son dictionnaire
Consultez la description détaillée des produits ou services de Google suivants : Google goo.gl
- Analyse des backlinks
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

