Fonction header location inopérante
9 messages
• Page 1 sur 1
-

johnny-57 - WRInaute occasionnel

- Messages: 313
- Inscription: 20 Avr 2007
Fonction header location inopérante
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
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

- Messages: 2685
- Inscription: 13 Fév 2004
Re: Fonction header location inopérante
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

- Messages: 313
- Inscription: 20 Avr 2007
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 ?
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 passionné

- Messages: 1290
- Inscription: 26 Fév 2004
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
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

- Messages: 313
- Inscription: 20 Avr 2007
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.
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.
-

johnny-57 - WRInaute occasionnel

- Messages: 313
- Inscription: 20 Avr 2007
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.
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 passionné

- Messages: 1290
- Inscription: 26 Fév 2004
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 :
En PHP ça pourrait donner :
- Code: Tout sélectionner
if( $notAuthorized() )
{
header( 'blabla 403' );
readfile( 'letemplatederreur.html' );
exit;
}
9 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- [Resolu]Fonction rechercher inopérante.
- header location Vs Header refresh ?
- Header Location
- header("Location: xxx") + header("Status: HTT
- UR / header location et Duplicate
- Header location et référencement
- Probleme setcookie et header(location)
- header("Location ou 301 moved ?
- redierction php : header location ou require ?
- Soucis avec header location suite à un formulaire
Consultez la description détaillée des produits ou services de Google suivants : Google Related Links
- Test HTTP header
Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée. - 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).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
