Lorsque vous devez assurer une veille sur votre site, dans le cadre des pages 404, il peut être nécessaire de recevoir un mail quand celle-ci est appelée, pour cela vous pouvez définir dans votre page 404.php de votre site le code suivant :
<div class="entry-content">
Vous
<?php
$adminemail = get_option('admin_email'); #Adresse email de l'administrateur WordPress
$siteweb = get_bloginfo('url'); #URL du site Web
$nomdusiteweb = get_bloginfo('name'); #Nom du site Web
if (!isset($_SERVER['HTTP_REFERER'])) {
#Mesage à l'utilisateur
echo "avez essayé de vous rendre sur "; #construction du message
$message404 = "Tout n'est pas perdu!";
} elseif (isset($_SERVER['HTTP_REFERER'])) {
#Proposition de solutions à l'utilisateur et envoi d'une alerte mail à l'administrateur
echo "avez cliqué sur le lien <code>";
#Construction de l'alerte admin
$messageerreur = "Un utilisateur a essayé de se rendre sur $siteweb"
.$_SERVER['REQUEST_URI']." et a reçu une erreur 404 (page non trouvée). ";
$messageerreur .= "Ce n'était pas sa faute, il faut donc intervenir sur cet incident.
Url d'origine ".$_SERVER['HTTP_REFERER'];
mail($adminemail, "Erreur 404 pour ".$_SERVER['REQUEST_URI'],
$messageerreur, "From: $nomdusiteweb <noreply@$siteweb>");
$message404 = "Un administrateur a été averti de cet incident.";#L'alerte mail admin a été envoyé
}
echo " ".$siteweb.$_SERVER['REQUEST_URI']; ?>
A chaque fois qu’une personne ou un robot (moteur de recherche par exemple) accédera à votre page 404, vous recevrez donc un mail avec l’URL d’origine et l’URL de départ.
Quand à l’utilisateur, il aura un message s’excusant du désagrément avec la possibilité de revenir en arrière ou de faire une recherche sur votre site.