Je souhaite utiliser une page 404 personnalisée pour mon site Web. J'ai donc suivi les instructions trouvées ici et ici .
Cependant, lorsque je déclenche une erreur, le message 404 est incorporé au milieu de ma page d’accueil, c’est-à-dire que je vois tous les modules qui lui sont affectés, et que le message se trouve au milieu, là où vont normalement les articles (et les messages Joomla).
Le code que j'ai ajouté en haut du fichier error.php est le suivant:
defined('_JEXEC') or die;
if (($this->error->getCode()) == '404') {
header("HTTP/1.0 404 Not Found");
echo file_get_contents(JURI::root().'index.php?/es-co/option=com_content&view=article&id=23');
exit(0);
}
J'utilise uniquement ces modules sur la page d'accueil et le menu d'où provient le lien est activé mais n'est attribué à aucun module.
Qu'est-ce que je fais mal?
Vous pouvez jeter un oeil ici .
Changement
JURI::root().'index.php?/es-co/option=com_content&view=article&id=23'
à
JURI::root().'?option=com_content&view=article&id=23'
Raison:
JURI::root().'index.php?/es-co/option=com_content&view=article&id=23'
est en cours d'acheminement vers (essayez-le dans votre navigateur):
http://example.com/es-co/?/es-co/option=com_content&view=article&id=2
Qui est en train de charger cet article, mais acheminé via l'élément de menu de la page d'accueil, afin qu'il soit chargé en utilisant la présentation de la page d'accueil.
Faire le changement suggéré chargera l'article 404 dans le menu que vous avez créé pour cela.