Ya encontre la solución aunque no funciona siempre ya que por lo que he encontrado en la red, el funcionamiento de $HTTP_SERVER_VARS['HTTP_REFERER']; depende de cada servidor, si devuelve el valor o no, por cuestiones de seguridad.
Aqui les dejo el código por si a alguien le interesa:
Lo que tiene que hacer es configurar para que en caso de no encontrar un archivo el servidor diriga al usuario a una pagina 404.php, en donde se inserta este código.
Código:
<?PHP
$ip = $_SERVER['REMOTE_ADDR'];
$referer = $HTTP_SERVER_VARS['HTTP_REFERER'];
$header = 'From: ' . $mail. " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$mensaje .="Enviado el: " . date('d/m/Y', time())"\r\n\r\n";
$mensaje .= "Vinculo roto:\r\n " .$referer."\r\n\r\n";
$mensaje .= "IP:\r\n " .$ip."\r\n\r\n";
$para ='tu correo';
$asunto = 'Error 404';
/*Send the email*/
mail($para, $asunto, $mensaje, $header);
?>
Ojala les sea de utilidad.
En mi caso me ayudo mucho ya que en 24 horas recibi cerca de 30 notificaciones de error 404 y al revisar encontre que los vinculos rotos no estaban en mi sitio actual, si no en el sitio anterior, que aun estaba en el servidor y se podia accesar atraves de los buscadores que aun tenian indexada la página anterior.