Redirection 301 par header PHP
19 messages • Page 1 sur 2 • 1, 2
Consultez la formation sur les stratégies de liens de WebRankInfo / Ranking Metrics
Redirection 301 par header PHP
Bonjour
J'ai mis en place la redirection 301 de mon site http://domain.tld sur http://www.domain.tld , avec un fichier .htaccess à la racine de mon site. Cà fonctionne.
Cependant, il y a deux résultats différents quand je fais:
http://domain.tld/php/courses_anciennes/old_courses.php , et
http://www.domain.tld/php/courses_ancie ... ourses.php
Dans le premier cas, le test de WRI me donne: redirection 301, et dans le deuxième cas, ce même test me donne: redirection 302.
En effet, cette url old_courses.php, fait des redirections 302 par header, et donc il faudrait que je sache comment faire des redirections 301 par header sous PHP.
Le code que j'utilise actuellement ( qui donne une redirection 302 ), est:
header("pragma: no cache");
header("Location: $url");
Ceci remplace la page actuelle, par la page $url, mais fait une redirection 302, et non pas 301.
D'où ma question ( de newbie j'avoue ): Comment faire une redirection 301 en PHP avec l'instruction header, ayant le même effet ?
Merci beaucoup de vos réponses.
Jean Francois Ortolo
J'ai mis en place la redirection 301 de mon site http://domain.tld sur http://www.domain.tld , avec un fichier .htaccess à la racine de mon site. Cà fonctionne.
Cependant, il y a deux résultats différents quand je fais:
http://domain.tld/php/courses_anciennes/old_courses.php , et
http://www.domain.tld/php/courses_ancie ... ourses.php
Dans le premier cas, le test de WRI me donne: redirection 301, et dans le deuxième cas, ce même test me donne: redirection 302.
En effet, cette url old_courses.php, fait des redirections 302 par header, et donc il faudrait que je sache comment faire des redirections 301 par header sous PHP.
Le code que j'utilise actuellement ( qui donne une redirection 302 ), est:
header("pragma: no cache");
header("Location: $url");
Ceci remplace la page actuelle, par la page $url, mais fait une redirection 302, et non pas 301.
D'où ma question ( de newbie j'avoue ): Comment faire une redirection 301 en PHP avec l'instruction header, ayant le même effet ?
Merci beaucoup de vos réponses.
Jean Francois Ortolo
-

thickparasite - WRInaute accro

- Messages: 1101
- Inscription: Sam Avr 26, 2003 23:47
Je pense que le code suivant devrait le faire
- Code: Tout sélectionner
<?
if ($_SERVER["HTTP_HOST"] != "www.domain.tld") {
header ('HTTP/1.1 301 Moved Permanently');
header("Location: http://www.domain.tld".$_SERVER['PHP_SELF']);
}
?>
nodom a écrit:header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$url);
Bonjour nodom
Mais... Si le navigateur est configuré pour un protocole < HTTP/1.1, par ex 1.0, ces instructions fonctionneront quand même ?
Excusez-moi de poser une telle question de newbie, mais je n'ai jamais pensé à ce problème.
Merci beaucoup de ta réponse.
Jean Francois Ortolo
Réponse
Cà marche... En tout cas avec Firefox comme d'habitude.
Mais l'adresse rendue par le test de WRI, dans le cas sans www, est bien old_courses.php , alors qu'avec www, l'adresse est l'adresse de redirection.
Google ne va-t-il pas faire des histoires, s'il constate que deux pages d'url identique, ne différant que par ce www, donnent des urls résultantes différentes, avec des résultats à l'affichage identiques ?
En d'autres termes, comment faire la redirection 301 de http://domain.tld sur http://www.domain.tld, avec .htaccess, de façon à ce que la redirection soit entièrement transparente, et tienne compte des redirections 301 ultérieures sur des sous-pages ?
Merci beaucoup de vos réponses.
Jean Francois Ortolo
Cà marche... En tout cas avec Firefox comme d'habitude.
Mais l'adresse rendue par le test de WRI, dans le cas sans www, est bien old_courses.php , alors qu'avec www, l'adresse est l'adresse de redirection.
Google ne va-t-il pas faire des histoires, s'il constate que deux pages d'url identique, ne différant que par ce www, donnent des urls résultantes différentes, avec des résultats à l'affichage identiques ?
En d'autres termes, comment faire la redirection 301 de http://domain.tld sur http://www.domain.tld, avec .htaccess, de façon à ce que la redirection soit entièrement transparente, et tienne compte des redirections 301 ultérieures sur des sous-pages ?
Merci beaucoup de vos réponses.
Jean Francois Ortolo
ortolojf a écrit:Réponse
En d'autres termes, comment faire la redirection 301 de http://domain.tld sur http://www.domain.tld, avec .htaccess, de façon à ce que la redirection soit entièrement transparente, et tienne compte des redirections 301 ultérieures sur des sous-pages ?
Merci beaucoup de vos réponses.
Jean Francois Ortolo
RewriteCond %{HTTP_HOST} ^domain.tld $
RewriteRule ^(.*) http://www.domain.tld /$1 [QSA,L,R=301]
nodom a écrit:ortolojf a écrit:Réponse
En d'autres termes, comment faire la redirection 301 de http://domain.tld sur http://www.domain.tld, avec .htaccess, de façon à ce que la redirection soit entièrement transparente, et tienne compte des redirections 301 ultérieures sur des sous-pages ?
Merci beaucoup de vos réponses.
Jean Francois Ortolo
RewriteCond %{HTTP_HOST} ^domain.tld $
RewriteRule ^(.*) http://www.domain.tld /$1 [QSA,L,R=301]
Rebonjour nodom
J'avais fait avant, celà:
RewriteEngine on
RewriteCond %{HTTP_HOST} !www.domain.tld$
RewriteRule (.*) http://www.domain.tld/$1 [QSA,L,R=301]
Cà marche très bien, et c'est ce qui me désole:
Quand je fais: http://domain.tld/php/courses_anciennes/old_courses.php , celà me fait maintenant: redirection 301 sur http://www.domain.tld/php/courses_ancie ... ourses.php
Mais quand je fais, avec le www: http://www.domain.tld/php/courses_ancie ... ourses.php
, ceà me fait maintenant: redirection 301 sur http://www.domain.tld/php/courses_ancie ... ourses.php
Ceci avec le test du Header HTTP de WRI.
Evidemment, l'adresse old_courses.php est redirigée par mes soins sur wait2_old_courses.php ( redirection 301 correcte comme ci-dessus ), mais cette adresse wait2_old_courses.php , n'apparaît pas dans le cas où le www n'est pas préfixé au domain.tld
Le test de WRI ne suit que la première redirection, car l'adresse correcte finale des redirections, qu'il devrait y avoir, serait plutôt celle-ci: http://www.domain.tld/php/courses_ancie ... ourses.php
dans les deux cas ( avec et sans www ).
Donc le problème vient du test de WRI, qui ne prend en compte que la première redirection. Mais dans le cas de Google, que va-t-il penser de mes redirections multiples ? C'est tout le problème.
Si Google, comme WRI, ne prend en compte que la première redirection, il va penser que la même url old_courses.php conduit à deux urls différentes ( old_courses.php et wait2_old_courses.php ) suivant que www est absent ou présent, et que va-t-il en déduire ? Celà va-t-il avoir une influence néfaste sur mon référencement ?
Merci beaucoup de tes réponses.
Jean Francois Ortolo
-

thickparasite - WRInaute accro

- Messages: 1101
- Inscription: Sam Avr 26, 2003 23:47
Tu veux un header ou un .htaccess ?
Décide toi !
Le code exact pour le .htaccess (attention aux espaces qui ne sont pas bons dans les morceaux de code donnés précédemment).
Décide toi !
Le code exact pour le .htaccess (attention aux espaces qui ne sont pas bons dans les morceaux de code donnés précédemment).
- Code: Tout sélectionner
RewriteEngine on
RewriteCond %{HTTP_HOST} !www.domain.tld$
RewriteRule (.*) http://www.domain.tld/$1 [QSA,L,R=301]
Bonjour thickparasite
Tu n'as pas compris.
D'une part, je cherche ( avec .htaccess donc, comme je ne peux pas faire autrement, sinon il y aurait plusieurs instructions header ) à rediriger le domaine http://domain.tld vers le domaine http://www.domain.tld , par une redirection 301, comme recommandé par WRI. Celà, le fichier .htaccess que j'ai programmé comme ci-dessus le fait correctement, mais...
... Je cherche aussi, dans mes script de mon site, à faire des redirections 301 de scripts vers d'autres scripts, pour éviter que la durée d'exécution d'un script, dépasse les 30 secondes fatidiques..., et là, effectivement, le fait que le test de Header HTTP de WRI s'arrête à la première redirection, fait que l'adresse finale qu'il indique, n'est pas la même, dans le cas où le domaine est http://domain.tld , ou http://www.domain.tld , dans le cas où la page indiqué n'est pas la page d'accueil.
D'où ma question: Google suit-il toutes les redirections, sans s'arrêter à la première redirection ? Dans ce cas, l'adresse dans les deux cas est la bonne. Ou bien le test de Google est-il identique à celui de WRI, et dans ce cas le fait qu'il y ait deux adresses finales différentes, avec ou sans www, va-t-il indisposer Google ?
Voilà, j'espère que j'ai bien débroussaillé le problème, merci beaucoup de vos réponses.
Jean-François Ortolo
Tu n'as pas compris.
D'une part, je cherche ( avec .htaccess donc, comme je ne peux pas faire autrement, sinon il y aurait plusieurs instructions header ) à rediriger le domaine http://domain.tld vers le domaine http://www.domain.tld , par une redirection 301, comme recommandé par WRI. Celà, le fichier .htaccess que j'ai programmé comme ci-dessus le fait correctement, mais...
... Je cherche aussi, dans mes script de mon site, à faire des redirections 301 de scripts vers d'autres scripts, pour éviter que la durée d'exécution d'un script, dépasse les 30 secondes fatidiques..., et là, effectivement, le fait que le test de Header HTTP de WRI s'arrête à la première redirection, fait que l'adresse finale qu'il indique, n'est pas la même, dans le cas où le domaine est http://domain.tld , ou http://www.domain.tld , dans le cas où la page indiqué n'est pas la page d'accueil.
D'où ma question: Google suit-il toutes les redirections, sans s'arrêter à la première redirection ? Dans ce cas, l'adresse dans les deux cas est la bonne. Ou bien le test de Google est-il identique à celui de WRI, et dans ce cas le fait qu'il y ait deux adresses finales différentes, avec ou sans www, va-t-il indisposer Google ?
Voilà, j'espère que j'ai bien débroussaillé le problème, merci beaucoup de vos réponses.
Jean-François Ortolo
Votre besoin n'est pas claire pour la deuxième redirection (30 secondes).
expliquez pourquoi cette redirection? pourquoi 301? comment ça doit marcher coté visiteur? et qu'attendez vous de google? parlez de votre besoin avant de chercher la solution.
expliquez pourquoi cette redirection? pourquoi 301? comment ça doit marcher coté visiteur? et qu'attendez vous de google? parlez de votre besoin avant de chercher la solution.
nodom a écrit:Votre besoin n'est pas claire pour la deuxième redirection (30 secondes).
expliquez pourquoi cette redirection? pourquoi 301? comment ça doit marcher coté visiteur? et qu'attendez vous de google? parlez de votre besoin avant de chercher la solution.
Bonjour nodom
Il ne s'agit pas de "une deuxième redirection".
Il s'agit que je suis en mutualisé, et que la durée d'exécution maximale de mes scripts PHP, est de 30 secondes ( OVH 240Plan ), et que donc je suis obligé de jongler avec des redirections ( plusieurs ) à l'intérieur de chaques scripts, pour aller de scripts en script si besoin. C'est comme ça.
D'autre part, je n'ai, à part la page d'accueil de mon site, que deux pages de référencées, car les deux pages résultantes contiennent un formulaire, et GG ne va pas plus avant.
Pourquoi je souhaite que ce soient des redirections 301, ces mutiples redirections ? Parce que *si je met des redirections 302*, là tout est correct, sauf que le test HTTP Header de WRI, dans le cas de http://domain.tld/sous_repert/page.php indiquera une redirection 301 sur la bonne page page.php, alors qu'avec http://www.domain.tld/sous_repert/page.php indiquera une redirection 302 sur page.php ( la page initiale )
301 dans un cas, 302 dans l'autre, GG risque de perdre les pédales, non ?
Et *si je met des redirections multiples 301 dans mes scripts*, à ce moment-là c'est la même redirection 301 qui est indiquée, mais pas vers la même page: La page source dans le premier cas ( sans www ), la première page redirigée dans le deuxième cas ( avec www ).
Donc le problème, est de savoir si GG suit les redirections 301 multiples, et, au lieu de rester à la page source ( qui est la page page.php quand il n'y a pas de www ), GG va aller jusqu'à la page target, cible des redirections multiples que je fais dans les différents scripts traversés à partir de page.php
D'où la question de mon précédent post.
Bien à vous.
Jean Francois Ortolo
-

thickparasite - WRInaute accro

- Messages: 1101
- Inscription: Sam Avr 26, 2003 23:47
Ok ortolojf je pige mieux.
A mon avis il faut que tu fasses un test car ça me semble un peu tiré par les cheveux :p
Mais si la redirect marche pour le visiteur, il faut espérer que GG emboîte le pas.
nodom précise un paramètre important car même si GG indexe tes pages, il est vraisemblable qu'elles passent sans titre ni decription à terme.
Il faut garder à l'esprit que sur le Web la simplicité est la solution à 99% des problèmes et peut-être que tu peux trouver une solution qui soit plus simple ?
A mon avis il faut que tu fasses un test car ça me semble un peu tiré par les cheveux :p
Mais si la redirect marche pour le visiteur, il faut espérer que GG emboîte le pas.
nodom précise un paramètre important car même si GG indexe tes pages, il est vraisemblable qu'elles passent sans titre ni decription à terme.
Il faut garder à l'esprit que sur le Web la simplicité est la solution à 99% des problèmes et peut-être que tu peux trouver une solution qui soit plus simple ?
thickparasite a écrit:Ok ortolojf je pige mieux.
A mon avis il faut que tu fasses un test car ça me semble un peu tiré par les cheveux :p
Mais si la redirect marche pour le visiteur, il faut espérer que GG emboîte le pas.
?
Bonjour thickparasite
Cependant, du temps que j'avais mes redirections multiples par header en 302, GG donnait bien comme page en cache, l'affichage du dernier script redirigé...
Tout le problème serait donc de savoir si GG, dans son évaluation des redirections ( 301, 302... ) tient compte de l'affichage effectif ( en cache ), ou bien fait le même test header HTTP, que WRI.
Une dernière question: Qu'entends-tu par test ?
Je ne peux pas changer le résultat de ces redirections, ni leur effet sur GG, car il y a de toute façon, la redirection par .htaccess, de http://domain.tld sur http://www.domain.tld
J'envisage, au lieu de faire cette redirection de domaine sans www sur domaine avec www, de tout simplement renvoyer une erreur 404 ( non existant ) sur le domaine http://domain.tld . Qu'en penses-tu ? A ce moment-là, GG comprendrait que le domaine http://domain.tld n'existe pas , ce qui est parfois possible, alors que le domaine http://www.domain.tld existe.
Amicalement.
Jean Francois Ortolo
nodom a écrit:moi je me pose une autre question. google va-t-il attendre 2 minutes le temps que le script soit exécuté et que toutes les redirection soient réalisée? pour récupérer le contenu de la dernière page?
En fait...
Même pour les Courses du lendemain/après-midi, le délai d'affichage est quasi instantané vis-à-vis de GG, car GG passe soit dans la nuit, soit a toutes les chances de ne pas passer juste au moment de la mise à jour des Courses, qui a lieu quand le premier visiteur après 15 h, passe sur cette page. L'autre page est quasi instantanée dans tous les cas.
Cependant, pour la page des Courses du lendemain/après-midi, je suis obligé de procéder avec des redirections multiples, car le délai de mise à jour n'est pas prédictible, inférieur ou légèrement supérieur à 30 secondes.
... Je ne vais quand même pas faire une programmation différente, suivant que la mise à jour doit avoir avoir lieu, ou non ? Il est vrai que je peux savoir dans mon script new_courses.php, si la mise à jour doit avoir lieu ou non, et donc en tenir compte dans la programmation, mais je n'ai pas envie de faire l'effort de modifier mon site de fond en comble comme celà...
Remarque, c'est bien possible que ce que tu dis soit la solution de mon problème... Si je pouvais programmer ces deux pages sans redirections, GG ne verrait que les pages cibles, old_courses.php , ou new_courses.php
Pffoouu, quel effort...
Merci beaucoup de tes conseils.
Jean Francois Ortolo
19 messages • Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Netlinking (liens et référencement) : apprenez ce qu'est réellement un bon lien pour le référencement et surtout comment en obtenir. 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 :
- Gérer l'entête HTTP en PHP
- Aperçu des différents types de redirection
- Référencement : gestion des redirections par Yahoo
- A propos des redirections sauvages (302)
- Les redirections 301 passent-elles encore le contexte sémantique ?
- Redirection (PHP, JavaScript, serveur...)
- Optimiser ses codes HTTP pour le référencement
- Tutoriel complet sur les redirections (301, 302, JavaScript, ...)
- Vidéos de Matt Cutts sur le référencement Google
- X-Robots-Tag : directive pour bloquer les robots dans l'entête HTTP : explications
- redirection par php header 301
- redirectionS 301 htacsess ou header php ?
- Redirection avec header() de PHP
- Redirection php (fonction header) et indexation
- PB redirection php header(Location: erreur.php?erreur=404)
- Redirection??? Php?? 301??
- Redirection 301 en php
- Redirection 301 en php et backlinks
- redirection 301 PHP : 2 méthodes ?
- redirection 301 html (sans php, apache etc)
- Redirection 301 d'un fichier .htm à .php
- pb redirection 301 index.php vers home
- Redirection 301 sélective (.htaccess ou php headers)
- probelem dans redirection 301 php sous Firefox
- Le bon code PHP pour une redirection 301
- Test de lien (type de redirection)
Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs). - Test HTTP header
Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



le forum