Quand envoyer le code d'état HTTP?
Actuellement dans mes scripts PHP, je redirige l'utilisateur vers une 404 personnalisée ne trouve pas de page d'erreur lorsqu'il tente d'accéder à un contenu qui n'existe pas ou n'appartient pas à l'utilisateur. Comme:
header('Location: http://www.mydomain.com/error/notfound/');
exit;
Je me rends compte ci-dessus de l'en-tête() envoie une redirection 302 code de statut par défaut.
Ce que je ne comprends pas, cependant, c'est lorsque je dois envoyer le 404 not found code d'état. Avant de me rediriger l'utilisateur? Ou quand je l'affiche de la /erreur/notfound/ page?
Merci pour votre aide!
OriginalL'auteur Justin Stayton | 2009-05-01
Vous devez vous connecter pour publier un commentaire.
Vous devriez faire quelque chose comme ceci:
OriginalL'auteur Pim Jager
Vous n'exécutent pas les erreurs 404 comme une redirection.
Ce que vous voulez vraiment faire est d'envoyer le statut 404-tête, puis remettez le courant de sortie avec le corps d'une page 404.
Il y a différentes façons de le faire et ça dépend un peu sur la façon dont votre site est structuré. Les applications MVC généralement à la main avec un avant. J'ai vu d'autres systèmes de lever une Exception et ensuite enregistrés gestionnaire d'exception se charge d'afficher la page d'erreur 404.
À toute vitesse, les principales étapes sont
OriginalL'auteur Peter Bailey
Vous ne pouvez pas utiliser 404 et Localisation: ensemble. L'emplacement est valable que pour certaines réponses (201, et 3xx)
Vous pouvez toutefois envoyer la page HTML personnalisée dans le corps de votre réponse 404.
OriginalL'auteur Peter Štibraný
De php.net:
http://us.php.net/manual/en/function.header.php
OriginalL'auteur James Socol
Vous devez envoyer un code d'état HTTP 404. Les navigateurs et les les robots de le comprendre. Vous pouvez également inclure un plus conviviale erreur de page expliquant ce qui s'est passé, y compris un formulaire de recherche sur votre site, Soundex liens, etc.
OriginalL'auteur jabley
Un "redirect" et un "non trouvé" sont des concepts différents.
De fichier qui pourrait être trouvé?
http://www.mydomain.com/error/notfound/
ou
http://www.mydomain.com/not_exist.html
La "http://www.mydomain.com/not_exist.html" page devrait avoir une erreur 404 en-tête ET de la "Page non Trouvée" contenu.
Un quickfix pourrait être:
Mais cela nécessite 2 apache demandes et est une sorte de méchant.
OriginalL'auteur Bob Fanger