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 :
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!