Maison  >  Article  >  développement back-end  >  Pourquoi mon application PHP affiche-t-elle une page vierge au lieu d'une erreur 404 ?

Pourquoi mon application PHP affiche-t-elle une page vierge au lieu d'une erreur 404 ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-12 03:33:02907parcourir

Why Does My PHP App Show a Blank Page Instead of a 404 Error?

Erreur PHP 404 : comprendre l'écart du dernier kilomètre

Malgré le code apparemment correct, pourquoi votre application PHP ne parvient-elle pas à afficher un 404 erreur et présente à la place une page vierge ?

Le code fourni garantit qu'un en-tête d'erreur 404 est envoyé. Cependant, il ne tient pas compte d'une distinction cruciale dans la façon dont les réponses sont traitées par les serveurs Web par rapport à PHP.

Gestion du serveur Web

En règle générale, le serveur Web traite la requête. et, s'il ne trouve pas le fichier demandé à l'URI, il envoie un en-tête 404 et affiche une erreur 404 personnalisée. page.

Interception PHP

Lorsque le serveur web délègue la requête à la page PHP, le script PHP se charge de générer à la fois l'en-tête et le corps de la réponse. Cela signifie que malgré l'en-tête 404 envoyé par PHP, le serveur web s'est déjà engagé à afficher la page PHP au lieu de la page 404 standard.

Remise à PHP

De ce fait, le script PHP prend effectivement la responsabilité de gérer l'erreur 404, qui présente deux défis :

  • Page 404 manquante :Le script PHP n'a pas la configuration nécessaire pour rediriger vers une page d'erreur 404 personnalisée.
  • Interférence de sortie : Toute sortie générée par le script PHP remplacera le contenu de la page 404, ce qui entraînera l'affichage d'une page vierge au lieu d'une erreur. message.

Solution

Pour résoudre le problème, vous devez gérer explicitement le cas 404 et générer vous-même un message d'erreur. Le code suivant fournit un exemple :

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

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