Maison >développement back-end >tutoriel php >Pourquoi mon en-tête PHP 404 génère-t-il une page vierge ?

Pourquoi mon en-tête PHP 404 génère-t-il une page vierge ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-14 20:18:02538parcourir

Why Does My PHP 404 Header Result in a Blank Page?

Pourquoi l'envoi d'une erreur 404 en PHP peut ne pas fonctionner

En PHP, si vous rencontrez une page vide malgré l'utilisation de code pour définir un 404 En-tête Not Found, c'est parce que :

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

Bien que techniquement correct, il manque une étape cruciale à ce code : PHP est responsable de la sortie de la page d'erreur 404.

Comment sont généralement les 404 Géré

Normalement, les erreurs 404 sont gérées par le serveur Web :

  1. L'utilisateur demande un URI.
  2. Le serveur Web vérifie le fichier à cet URI.
  3. Si le fichier n'est pas trouvé, le serveur Web envoie un en-tête 404 et affiche une page d'erreur 404.

Le rôle de PHP dans la gestion des erreurs

Cependant, lorsqu'une page PHP est exécutée, le serveur Web passe le contrôle à PHP avant de pouvoir gérer un 404.

  1. L'utilisateur demande un URI.
  2. Le serveur Web détecte une page PHP et passe le contrôle à PHP.
  3. PHP vérifie le fichier et découvre qu'il n'est pas trouvé.
  4. PHP envoie un en-tête 404 mais devient désormais responsable de l'affichage de la page d'erreur.

Dans ce scénario, PHP n'a pas la capacité d'afficher une page 404 personnalisée, ce qui entraîne une page vierge. Pour résoudre ce problème, vous pouvez intégrer la page 404 souhaitée dans le code PHP ou rediriger vers une page 404 dédiée qui existe en dehors de l'application PHP.

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!

Déclaration:
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