Je suis en train de refactoriser un site Web dont les éléments de menu principaux sont directement liés à un article spécifique des catégories correspondantes.
Maintenant, pour chacun de ces éléments de menu, il existe des éléments de menu de catégories de blogs pour enfants (masqué), pour chacune de ces catégories.
Jusqu'à hier soir, cette configuration fonctionnait bien. Ce matin, lorsque j'ai cliqué sur les éléments du menu principal, j'obtiens "Boucle de redirection" sur le navigateur. La même chose se produit si j'essaie d'atteindre l'article qui est lié aux éléments de menu d'un seul article, à partir de la catégorie blog.
Aucune extension SEF n'est utilisée, et il n'y a rien de spécial dans htaccess qui pourrait produire cela.
Mon hypothèse est que Joomla est en train de devenir confus et va et vient entre les URL possibles pour cet article. Notez que je reçois également une boucle de redirection avec le SEF principal de Joomla et que la réécriture est désactivée pour ces articles.
Donc, essayer d'accéder à l'article avec son URL non-sef comme:
index.php?option=com_content&view=article&id=11catid=8&lang=en
Je reçois une boucle de redirection pour cela, qui se termine par une URL:
index.php?option=com_content&id=18&lang=en&view=article
il s’agit en fait de l’url que je suis redirigé et qui s’empile sur le navigateur pour tous les articles en question.
Que se passe t-il ici?
Je viens de régler ça.
Deux choses se sont passées ici:
En premier lieu, une erreur 500 a été générée par Joomla, à cause d’une requête MySQL - d’un module.
Ce site Web avait un paramètre (hérité du développement précédent) pour rediriger vers une page d’article Erreur personnalisée. Cependant, cette page n'est plus disponible, ce qui entraîne une nouvelle erreur 404, qui tentait à nouveau de se rediriger vers elle-même.
Ainsi, une erreur de syntaxe d'un module dans la requête MySQL a fini par se manifester par une boucle de redirection.
Approches qui m'ont aidé à résoudre ce problème:
Le fait que les éléments de menu auxquels j'essayais de parvenir soient redirigés et aboutissent à une boucle de redirection vers la même URL:
index.php? option = com_content & id = 18 & lang = en & view = article
J'ai vérifié la sauvegarde de l'ancienne implémentation du site et trouvé l'ID d'article. Il s'agissait d'un article pour une page d'erreur 404 personnalisée.
La technique de débogage la plus courante: commencez par désactiver les extensions tierces.
Configurez une installation Joomla propre et essayez de recréer les mêmes conditions - configuration.
Enfin, je n'ai pas encore compris pourquoi Joomla essayait toujours de rediriger vers cet ancien article pour la page d'erreur ... mais je suppose que quelque chose de caché serait quelque part, ce qui se révélera à un moment donné.
J'ai également écrit au développeur de module à propos du problème de son module, qui génère dans certaines conditions une requête SQL incorrecte.