PHP naviguer vers la page d'erreur
-
06-07-2019 - |
Question
Sur mon site Web, website.com/downloads se connecte à website.com/index.php?page=downloads (avec la réécriture d'apache). J'ai un ensemble de pages d'erreur 404 non trouvé personnalisé. Si je fais website.com/dkfjf/fdf, cela va à l'erreur 404, mais si je fais website.com/something, ça va à index.php? Page = quelque chose, alors dans mon index.php, comment puis-je faites-le simplement passer à l'erreur 404, après avoir déterminé qu'il n'y a pas de page quelque chose
? Parce que maintenant, je charge juste la page d'erreur 404 dans la div principale (comme toutes les autres pages), mais elle est incohérente (par exemple, elle affiche toujours website.com/soemthing dans la barre d'adresse et il y a d'autres problèmes), et je viens vouloir le faire naviguer à l'erreur 404. Comment puis-je faire cela?
EDIT: cela a fonctionné:
echo '<meta http-equiv="refresh" content="0; url = /error" />';
(mywebsite.com/error réécrit en index.php? page = error, qui est ma page d'erreur 404). Est-ce une mauvaise approche?
La solution
Utilisez la en-tête
pour envoyer le code d'état correct:
header( Utilisez la en-tête
pour envoyer le code d'état correct:
<*>
Ensuite, vous pouvez envoyer votre document d'erreur avec readfile
s'il s'agit d'un fichier statique. ou avec include
s'il s'agit d'un fichier PHP.
SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);
Ensuite, vous pouvez envoyer votre document d'erreur avec readfile
s'il s'agit d'un fichier statique. ou avec include
s'il s'agit d'un fichier PHP.