Maison > développement back-end > tutoriel php > Pourquoi mon code PHP ne génère-t-il pas d'erreur 404 ?

Pourquoi mon code PHP ne génère-t-il pas d'erreur 404 ?

Patricia Arquette
Libérer: 2024-11-11 06:25:02
original
262 Les gens l'ont consulté

Why Doesn't My PHP Code Produce a 404 Error?

Résoudre le dilemme des erreurs 404 dans les applications PHP

Dans le développement PHP, il est parfois nécessaire de renvoyer une erreur 404 pour indiquer qu'une ressource ne peut pas être trouvé. Cependant, vous pouvez rencontrer une situation dans laquelle un code comme celui-ci ne produit pas l'erreur 404 souhaitée.

if (strstr($_SERVER['REQUEST_URI'],'index.php')) {
    header('HTTP/1.0 404 Not Found');
}
Copier après la connexion

Au lieu d'afficher une erreur 404, vous pouvez obtenir une page vierge. Le problème réside dans la manière dont les serveurs Web et PHP interagissent dans le traitement des réponses 404.

Comme expliqué dans la réponse fournie :

  • Les serveurs Web gèrent généralement eux-mêmes les erreurs 404, affichant une page 404 désignée. .
  • PHP, cependant, remplace ce processus en recevant la requête et en envoyant un en-tête 404.

Cela amène le serveur Web à contourner son propre mécanisme de gestion 404. Par conséquent, au lieu de la page 404 prévue, le serveur Web envoie tout ce que PHP produit, qui est une page vide dans ce cas.

Pour résoudre ce problème, PHP doit envoyer l'en-tête 404 avant le démarrage du serveur Web. traitement de PHP. Cela garantit que le serveur Web peut gérer correctement la réponse et afficher la page 404 appropriée.

Le code corrigé :

header('HTTP/1.0 404 Not Found');
exit(); // To prevent any further PHP processing
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal