Renvoyer un code d'erreur HTTP 404

Rechercher

Renvoyer un code d'erreur HTTP 404

  • Par Emacs
  • 4 commentaires
  • 8 069 lectures
  • De PHP Group
  • RSS -  Atom

Cette portion de script permet de retourner un véritable code d'erreur 404 lorsqu'un fichier n'est pas trouvé sur le serveur et ne peut être affiché au client. Retourner un header 404 permet notamment au serveur web de logguer les erreurs 404, ce qui est particulièrement utile pour la génération de statistiques via Urchin, AWStats ou OSL. De plus, cela permet de personnaliser ses propres erreurs 404 au moyen de la commande ErrorDocument 404 /erreur404.html dans le fichier .htaccess du site.

Portion de code

<?php
  /**
   * La fonction redirectionErreur404() renvoit une véritable erreur 404
   * passée en paramètre.
   *
   * @param : void
   * @return : void
   */
  function redirectionErreur404()
  {
    header('HTTP/1.0 404 Not Found');
    exit;
  }
  /** Exemple d'utilisation **/
  if(!file_exists('/pages/mapage.html'))
  {
    redirectionErreur404();
  }
?>

Les commentaires

1. Par Mickaël Wolff le 19/11/2007 12:00

Il ne faut pas oublier d'envoyer du contenu (include 'page-erreur-404.html' ; par exemple) à l'internaute, afin qu'il ne soit pas perdu devant une page blanche.

2. Par Emacs le 19/11/2007 13:09

Ca dépend. Si dans le fichier .htaccess, le document 404 par défaut est indiqué, le visiteur sera automatiquement redirigé sur cette page par le serveur. Si ce n'est pas le cas, il faudra faire une redirection vers un 404 avec PHP et la fonction header().

3. Par Paco le 30/08/2008 00:08

C'est plus simple avec un htaccess quand meme...enfin en tout cas ca doit être plus rapide?

4. Par Emacs le 30/08/2008 02:16

Tu peux modifier la fonction pour y ajouter un chemin de fichier personnalisé avec une redirection (Location). L'avantage de cette fonction c'est que tu peux faire des vrais redirections 404 depuis un script PHP. Ainsi dans les logs par exemple, tu peux différencier les erreurs 404 générées par les utilisateurs et les corriger.

++