if (strstr($_SERVER['REQUEST_URI'],'index.php')) {
header('HTTP/1.0 404 Not Found');
}
Pourquoi cela ne fonctionne-t-il pas ? J'obtiens une page blanche.
if (strstr($_SERVER['REQUEST_URI'],'index.php')) {
header('HTTP/1.0 404 Not Found');
}
Pourquoi cela ne fonctionne-t-il pas ? J'obtiens une page blanche.
Votre code est techniquement correct. Si vous regardiez les en-têtes de cette page blanche, vous verriez un en-tête 404, et d'autres ordinateurs/programmes seraient capables d'identifier correctement la réponse comme étant un fichier non trouvé.
Bien sûr, vos utilisateurs sont toujours SOL. Normalement, les 404s sont gérés par le serveur web.
Le problème est qu'une fois que le serveur web commence à traiter la page PHP, il a déjà dépassé le point où il traiterait un 404
En plus de fournir un en-tête 404, PHP est maintenant responsable de l'affichage de la page 404.
C'est un comportement correct c'est à vous de créer le contenu de la page 404.
L'en-tête 404 est utilisé par les robots et les gestionnaires de téléchargement pour déterminer si le fichier existe.
(Une page avec un en-tête 404 ne sera pas indexée par Google ou d'autres moteurs de recherche).
Les utilisateurs normaux ne regardent pas les en-têtes http et utilisent la page comme une page normale.
if (strstr($_SERVER['REQUEST_URI'],'index.php')){
header('HTTP/1.0 404 Not Found');
echo "<h1>404 Not Found</h1>";
echo "The page that you have requested could not be found.";
exit();
}
Si vous regardez les deux dernières lignes d'écho, c'est là que vous verrez le contenu. Vous pouvez le personnaliser comme vous le souhaitez.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.