web-dev-qa-db-fra.com

Joomla Redirect sans changer d'URL

Je cherche un moyen de rediriger joomla vers une autre page sans changer l'URL dans la barre d'adresse.

Nous avons actuellement une configuration de site qui redirige vers une page 404 personnalisée (site.com/404-page) lorsqu'il rencontre une page 404 (par exemple, site.com/fake-url). Cette page 404 est une page d'article avec des modules personnalisés, etc., conçue pour aider l'utilisateur à trouver la page correcte.

Cependant, nous souhaitons maintenant conserver la personne sur l'URL incorrecte dans laquelle elle est entrée et afficher la page 404 personnalisée. Je sais qu'il est possible, via les redirections htaccess, de rediriger en silence sans changer l'URL. Je me demande si quelque chose comme cela est possible pour joomla.

Le code actuel qui redirige se trouve dans le fichier templates error.php

if($this->error->getCode() == "404"){
    $link = JRoute::_("index.php?option=com_content&view=article&id=82&Itemid=163");
    $app->redirect($link);
}
2
Typhado

Bien que je n'utilise pas la terminologie appropriée, je pense avoir compris votre problème principal.

Tout d’abord, ce que vous avez maintenant n’est pas un bon moyen de traiter les pages/urls non trouvés (404 erreurs). En réalité, vous ne renvoyez pas d'erreur d'état 404, mais une page d'état 200 contenant du contenu. Donc, il semble que toute URL défectueuse mène à quelque part dans votre site.

Dans ce cas, vous n'avez pas besoin d'une autre redirection, ni de rien "silencieux" ou "mystique".

Ce que vous devez faire est de travailler sur la page error.php de votre modèle. Pour commencer, supprimez simplement cette redirection mal utilisée dans votre error.php.

Testez pour voir les résultats maintenant avec un /fake-url page. Si le reste de votre error.php est correct (avec les URL SEF activées également), vous devriez voir que vous restez sur l'URL non existante, avec une erreur d'état 404 et le contenu que votre error.php est conçu pour être affiché.

Maintenant, tout ce que vous avez à faire est d’être créatif avec le fichier error.php. Cette ressource de documentation Joomla devrait vous aider: Pages d'erreur personnalisées

Si vous rencontrez d'autres problèmes lors de la personnalisation de votre page d'erreur, n'hésitez pas à ouvrir une nouvelle question sur ce site.

1
FFrewin