Fonction header location inopérante

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


johnny-57
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 222
Inscription: Ven Avr 20, 2007 15:13

Fonction header location inopérante

Message le Dim Mar 23, 2008 9:05

Bonjour,

J'ai un problème avec la fonction header location.

J'ai déplacé un site de chez infomaniak sur un rps ovh et du coup la fonction header location ne fonctionne plus.

J'ai fais une batterie de test y compris de faire un fichier php comportant uniquement ce code :

<?php
header( "Status: 403 request forbidden", false, 403);
header( "Location: http://mapage");
?>

aucun retour chariot avant <?php qui est collé en haut du fichier.

Je soupçonne un problème dans php.ini mais je n'arrive pas a trouver lequel

Si vous avez une idée je suis preneur ;)

jcaron
WRInaute accro
WRInaute accro
 
Messages: 1197
Inscription: Ven Fév 13, 2004 20:33

Re: Fonction header location inopérante

Message le Dim Mar 23, 2008 9:38

johnny-57 a écrit:Bonjour,

J'ai un problème avec la fonction header location.

J'ai déplacé un site de chez infomaniak sur un rps ovh et du coup la fonction header location ne fonctionne plus.

J'ai fais une batterie de test y compris de faire un fichier php comportant uniquement ce code :

<?php
header( "Status: 403 request forbidden", false, 403);
header( "Location: http://mapage");
?>

aucun retour chariot avant <?php qui est collé en haut du fichier.

Je soupçonne un problème dans php.ini mais je n'arrive pas a trouver lequel

Si vous avez une idée je suis preneur ;)


Ca aiderait certainement si tu nous disais ce que tu obtiens. En passant, je ne suis pas convaincu que Location et 403 fassent bon ménage, si? J'ai le sentiment que c'est réservé aux codes en 3xx, mais j'ai la flemme d'aller vérifier dans la RFC.

Jacques.


johnny-57
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 222
Inscription: Ven Avr 20, 2007 15:13

Message le Dim Mar 23, 2008 9:45

On obtient rien, c'est comme si le code n'était pas la, aucune erreur, mais la redirection ne ce fait pas.
Par ailleurs ça fonctionnais très bien chez infomaniak.


johnny-57
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 222
Inscription: Ven Avr 20, 2007 15:13

Message le Dim Mar 23, 2008 10:32

Bon,

J'ai quand même testé en enlevant "header( "Status: 403 Request Forbidden", false, 403);" du script et ça marche

Donc manifestement ça pose quand même un problème même si chez infomaniak ça fonctionnais.

En fait je pourrais bien m'en passer mais je voudrais pas avoir de problème avec google, je m'explique.

Je laisse les spiders acceder à du contenue réservé aux abonnées, donc je vérifie en tête de code l'hote du client connecté, si c'est un spider je laisse passer, si c'est pas un spider je vérifie si le client est connecté à un compte, si oui il passe si non on le redirige vers une page d'erreur.

En fait je voulais absolument mettre un entête dans la redirection en 403 ou 402 afin que si google passe par là de manière anonyme ^^' il comprenne pourquoi du coup il n'a pas accès à la même page que quand il se présente.

Comment faire alors si je ne peux utiliser le code 402 ou 403 dans status ?


Bool
WRInaute accro
WRInaute accro
 
Messages: 1290
Inscription: Jeu Fév 26, 2004 15:59

Message le Dim Mar 23, 2008 12:26

Hello,

il me semble que la syntaxe "header( "Status: 403 request forbidden", false, 403);" est réservée à la version CGI de PHP. Regarde dans tes logs d'erreur Apache, mais tu obtiens peut être une erreur du genre "malformed header".

Dans tous les cas comme il a été dit, une redirection utilise un code de retour spécifique 3XX (301 et 302 généralement) ; tu ne peux pas faire de redirection sur une erreur 4XX.

Mais pourquoi ne pas afficher directement ta page d'erreur en cas d'erreur 403 ? C'est normalement le but de la chose ;)


johnny-57
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 222
Inscription: Ven Avr 20, 2007 15:13

Message le Dim Mar 23, 2008 13:40

Ben c'est ce que je fais, j'utilise header location pour renvoyer vers une page d'erreur personnalisée.
Et je n'ai aucune erreur à l'écran, juste une page vide de tout code html.

Et j'ai peur de finir en blackliste si google passe de manière anonyme et est redirigé vers la page d'erreur sans l'entête http qui va avec.


Bool
WRInaute accro
WRInaute accro
 
Messages: 1290
Inscription: Jeu Fév 26, 2004 15:59

Message le Dim Mar 23, 2008 22:00

Mais pourquoi diable veux tu "renvoyer vers une page d'erreur" plutôt qu'envoyer directement cette page d'erreur ?

Une erreur 4XX ou 5XX, c'est sensé afficher une erreur, pas faire une redirection, pourquoi tu ne le fais pas ?


johnny-57
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 222
Inscription: Ven Avr 20, 2007 15:13

Message le Dim Mar 23, 2008 23:26

Ben parce que ma page qui fait la redirection n'est pas une page d'erreur.

J'ai une page a contenue reservé aux abonnées, qui payent pour avoir accès aux informations.
Cette page j'autorise les moteurs à l'indexer sans mise en cache, donc :

Quand la page de contenue est appelée je test si c'est un spider,

si oui affichage de la page,

si non verification du statue de connexion,

si c'est un abonné j'affiche la page

si non je renvoie vers une page qui annonce que c'est un contenue reservé aux abonnés et qui propose l'abonnement.

Pour que google ne me prenne pas en grippe si il passe de manière anonymé par une de ses pages je dit bien que c'est une redirection mais en 402 donc il comprendra qu'il ne peut pas y acceder.

Sauf si j'ai pas tout compris je ne vois pas comment faire d'autre.


Bool
WRInaute accro
WRInaute accro
 
Messages: 1290
Inscription: Jeu Fév 26, 2004 15:59

Message le Lun Mar 24, 2008 2:45

On va la refaire : un code d'erreur 403 ou 404 ou n'importe quel type d'erreur n'est jamais envoyé "seul", il y a toujours un message qui suit pour expliquer l'erreur. Mais tout ça, c'est dans la même requete HTTP.

En PHP ça pourrait donner :
Code: Tout sélectionner
if( $notAuthorized() )
{
    header( 'blabla 403' );
    readfile( 'letemplatederreur.html' );
    exit;
}


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... 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 1 invité