PB redirection php header(Location: erreur.php?erreur=404)

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


jOoL
WRInaute impliqué
WRInaute impliqué
 
Messages: 466
Inscription: Mer Mai 04, 2005 23:02

PB redirection php header(Location: erreur.php?erreur=404)

Message le Ven Déc 02, 2005 22:54

Bonjour à tous,

Après mes recherches sur le forum, je n'ai pas trouvé de soluce adéquate à mon problème.

J'explique:

Le site utilise de l'url rewriting du type

example.com/module/item.html vers example.com?module=module&item=item

Jusque là tout va bien. Ensuite, je teste dans ma base de données si le module demandé dans l'url est valide.

Si le module demandé dans l'url n'est plus valide, je fais une redirection comme ceci:

Code: Tout sélectionner
header("Status : 404 Not Found");
header("Location: http://www.example.com/errrors/error.php?error=404");


je suis bien redirigé vers ma page mais le header que je reçois ressemble à ceci:



Code: Tout sélectionner
HTTP/1.1 302 Found
Date: Fri, 02 Dec 2005 21:40:04 GMT
Server: Apache/2.0.53 (Fedora)
X-Powered-By: PHP/4.3.11
Set-Cookie: PHPSESSID=890d179477f97bd823ddd9852e9d
4ed8; path=/
Expires: Mon, 29 Sept 2005 05:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Last-Modified: Fri, 02 Dec 2005 21:40:04 GMT
Cache-Control: post-check=0, pre-check=0
Status : 404 Not Found
Location: http://www.example.com/errors/error.php?error=404
Content-Length: 16
Connection: close
Content-Type: text/html; charset=ISO-8859-1


Le header donne un HTTP/1.1 302 et après un status 404.

Est-ce correct?

Je ne devrais pas plutôt avoir directement un header HTTP/1.1 404 ???

le quel est pris en compte par Google?
Les moteurs mettront-ils leur index à jour correctement?

je suis perplexe...

Merci de votre aide

Orion33
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 234
Inscription: Ven Aoû 20, 2004 12:06

Message le Sam Déc 03, 2005 9:06

Code: Tout sélectionner
header("HTTP/1.1 404 Not found");
header("Status: 404 Not found");


Essaye avec ca ?


jOoL
WRInaute impliqué
WRInaute impliqué
 
Messages: 466
Inscription: Mer Mai 04, 2005 23:02

Message le Sam Déc 03, 2005 15:19

ça ne donne rien, toujours d'abord 302


jOoL
WRInaute impliqué
WRInaute impliqué
 
Messages: 466
Inscription: Mer Mai 04, 2005 23:02

Message le Sam Déc 03, 2005 23:15

en fait, mon soucis est de savoir si GG prendra en compte le status 404 de ma page malgré le 302 du haut?

si ça ne pose pas de problèmes au moteurs, cel ame convient..

Vous suivez?


aladdin
WRInaute passionné
WRInaute passionné
 
Messages: 922
Inscription: Ven Avr 29, 2005 12:26

Message le Dim Déc 04, 2005 0:39

ajoute :
Code: Tout sélectionner
<?header("HTTP/1.1 404 ");?>



dans la première ligne de ton fichier error.php ça devrai regler le problème ;)


jOoL
WRInaute impliqué
WRInaute impliqué
 
Messages: 466
Inscription: Mer Mai 04, 2005 23:02

Message le Dim Déc 04, 2005 0:57

mon fichier error a un header adéquat.

le problème vient du fichier qui contrôle la validité de l'url et redirige vers le fichier d'erreur si nécessaire...

tu penses aussi que le "double status 302 et 404" est préjudiciable?


aladdin
WRInaute passionné
WRInaute passionné
 
Messages: 922
Inscription: Ven Avr 29, 2005 12:26

Message le Dim Déc 04, 2005 1:08

je ne sais pas comment t'a fait pour ta redirection mais normalement tan que tu n'a pas decider ci le module est valide ou pas tu ne dois faire aucun appel à header (ni à aucune fonction qui genère un output).
il n'ya pas de raison d'avoir une entete 302 avec un status 404


ceci dit, je ne crois pas que ça poserai problème pour google


jOoL
WRInaute impliqué
WRInaute impliqué
 
Messages: 466
Inscription: Mer Mai 04, 2005 23:02

Message le Dim Déc 04, 2005 1:15

aladdin a écrit:ceci dit, je ne crois pas que ça poserai problème pour google


ça c'est plutôt rassurant....

en fait, pour expliquer le principe, je n'envoie effectivement aucun header avant de vérifier la validité du module.

si il est pas valide je renvoie le header décrit plus haut, sinon, je continue...

c'est pourquoi je comprends pas d'où sort ce 302....

finalement, la page reçue par le visiteur/bot a un header 302, et un status:404...

finalement, la question à se poser est:

GG prend-il en compte l'annonce HTTP1/1 302 ou l'annonce "status:401"???

juste?

qui a une réponse? ou un site qui m'explique la différence entre la réponse header de la première ligne et le header status...

8O


jOoL
WRInaute impliqué
WRInaute impliqué
 
Messages: 466
Inscription: Mer Mai 04, 2005 23:02

Message le Dim Déc 04, 2005 1:25

bon ceci, dit, je vais vérifier mes scripts pour m'assurer qu'aucu header n'est envoyé avant le contrôle de validité du module... c'est peut-être la source du problême... mais las à 1h24 du mat, il faut reposer mes yeux.

a demain et merci de votre aide à tous


JeunZ
WRInaute accro
WRInaute accro
 
Messages: 5301
Inscription: Mer Fév 18, 2004 12:41

Message le Mer Mar 01, 2006 2:57

J'ai exactement le même problème:

Dans mon fichier php je spécifie un header 404 et la location de la page 404.

Et pourtant quand j'analyse l'header de la page je me retrouve avec une 302 et un status de 404.

8O


jOoL
WRInaute impliqué
WRInaute impliqué
 
Messages: 466
Inscription: Mer Mai 04, 2005 23:02

Message le Jeu Mar 09, 2006 0:38

mais est-ce réellement un problème?!!?

C'est ce que je n'arrive pas à savoir...


JeunZ
WRInaute accro
WRInaute accro
 
Messages: 5301
Inscription: Mer Fév 18, 2004 12:41

Message le Jeu Mar 09, 2006 12:09

Pour moi ça en est un car c'est pas clair, et une 302 à la base c'est vraiment pas bon !


correiaj
WRInaute accro
WRInaute accro
 
Messages: 1106
Inscription: Lun Avr 25, 2005 22:39

Message le Jeu Mar 09, 2006 12:24

C´est logique, puisque la fonction header avec Location: renvoie un code 302... Ce qu´il faut c´est faire une modification de header et faire un include, pas un header Location:. Ou alors, modifier les headers des deux pages.

profcontact
Nouveau WRInaute
 
Messages: 1
Inscription: Mer Mar 07, 2007 17:20

Message le Mar Nov 11, 2008 17:51

Pour résoudre ce probléme il faut que la page sur laquelle est renvoyée l'erreur 404 renvoi elle même un code 404

Pour cela rajoute en tout début de fichier php la ligne suivante:
<?php
header( "Status: 404 Moved Permanently", false, 404);

suite du code....
?>

tu trouveras dans l'entête de la page Status: 404 Moved Permanently qui est la chaine texte saisie. Mais tu aurais pu mettre toto n'est plus ici ou n'importe quoi d'autre.

Mais ce qui te posait problème c'est que tu ne spécifiais pas le code de réponse http. C'est l'intérêt du 404 à la fin du header !

Voilà. C'est tout.


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 :

  • Test 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).
  • Analyseur d'entête HTTP
    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