Hacerlo de esta manera va a enviar el código de error 404 al navegador
Nosotros, los humanos, reconocemos un error 404 como página no encontrada. Esto es útil. Sin embargo, la principal razón de un código de error 404 es dejar que el equipo solicitante conozca que la página no se ha encontrado. La mayoría de los tutoriales en línea de error 404 en Joomla no hacen esto y los desarrolladores usan un método que devuelve un código 200 OK.
Aquí está cómo configurar un 404 con Joomla 3.0 y siguientes
En primer lugar, crear un artículo personalizado en el Gestor de artículos de Joomla. El nombre del artículo se beneficiaría de ser llamado "Página no encontrada" o algo similar. En el contenido del artículo escribe una pequeña explicación para tus usuarios de lo que salió mal. Pulsa guardar y anota el número de identificación del artículo (ID).
Entonces, ve a la raíz de la carpeta de tu plantilla y añade por FTP un nuevo fichero llamado 'error.php' (1). El Archivo 'error.php' es un reemplazo que es llamado por Joomla automáticamente si no se encuentra una página web solicitada. Una vez que hayas agregado la página 'error.php', pega el código que puedes encontrar a continuación. Intercambia "www.tu-sitio" y "ARTICLE_ID" por el número de tu artículo.
<?php
defined( '_JEXEC' ) or die('Restricted access');
if (($this->error->getCode()) == '404') {
echo file_get_contents('http://www.tu-sitio/index.php?option=com_content&view=article&id=ARTICLE_ID');
}
Esta solución presenta el contenido de la "Página no encontrada" que hemos hecho antes con el Gestor de artículos. De hecho, consigue toda la página en su propia solicitud. No te preocupes por la horrible vista de la URL - los usuarios nunca la verán. Hacerlo de esta manera va a enviar el código de error 404 al navegador, así como la página de error legible que has hecho a mano. El FYI de Joomla establece en la cabecera el código 404.
En el caso de este site el código es el siguiente:
<?php
defined( '_JEXEC' ) or die('Restricted access');
if (($this->error->getCode()) == '404') {
echo file_get_contents('http://www.xn--apaados-6za.es/index.php?option=com_content&view=article&id=73');
}
Ahora si, con el ejemplo de este artículo, ponemos una URL cortada: http://www.xn--apaados-6za.es/tenemos-personalizada-error-404-joomla-3x.html [copiar y pegar la URL en la barra del navegador] , nos llevará a la página de error 404 personalizada.
(1) Tengo que advertir que en la mayoría de las modernas plantillas de Joomla! de la serie 3.x se puede elegir una página de error 404, bien sea la predeterminada de Joomla! o la que hayas hecho tu personalizada. Si ya existe en tu plantilla un archivo 'error.php', deberás renombrarlo (para no perderlo) y colocar el que hemos explicado.
Cómo NO establecer una página de error 404 con Joomla
La mayoría de los tutoriales en línea muestran un método de redirección similar a:
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
header("HTTP/1.0 404 Not Found");
header("Location: http://www.tu-dominio/404");
exit;
El problema con esto es que la redirección se resuelve con un código 200 OK. Un código 200 le dice al navegador que la solicitud fue muy bien. ¡Eso no es bueno para Google! También tienes que decirle a Google que la página no se ha encontrado.
Aunque este método sirve para todas las versiones de Joomla, en Personaliza página de error 404 en Joomla tengo detallado el procedimiento para Joomla 1.5.x y Joomla 2.5.x