Dans le gestionnaire d'URL sh404sef, j'ai remarqué qu'une URL unique avait été créée pour une page pour laquelle je n'avais aucun élément de menu. L'URL non-sef était index.php?option=com_content&id=27&lang=en&view=category
Depuis, j'ai créé de nouvelles catégories et trouvé les URL non-sef correspondantes. Joomla semble donc créer automatiquement ces liens.
Quoi qu'il en soit, juste pour être sûr,
MISC La raison pour laquelle je veux empêcher l'URL non sef est parce que dans le passé, j'ai parfois créé des articles à utiliser comme pages de catégorie. Encore une fois probablement un blasphème parce que je devrais probablement utiliser un remplacement de mise en page ??
Il est préférable de ne pas penser à Joomla comme "créant ces liens" et de reconnaître au contraire qu'il existe diverses URL que Joomla peut comprendre et charger dans une page.
L'URL non-sef représente les variables dans lesquelles toute URL SEF est traduite. Le seul élément manquant dans votre URL serait un Itemid
qui correspond à l'id de l'élément de menu.
Je n'ai utilisé aucune solution pour empêcher ces types d'URL de fonctionner. Le mieux est de vérifier l’url au début du chargement de la page (probablement à l’aide d’un plug-in système), de transmettre l’url via JRoute (qui le convertira si possible en une URL conviviale pour les moteurs de recherche), puis de le rediriger vers cette URL. URL si les URL ne correspondent pas.
Cela ne devrait pas être fait pour les POST (car les données de publication seraient probablement perdues dans la redirection) et pourraient éventuellement entraîner des problèmes étranges (pas sûr que JRoute soit toujours très précis, vous pouvez donc obtenir plusieurs réponses pour des URL similaires).
Enfin, il peut déjà y avoir des plugins comme celui-ci http://extensions.joomla.org/profile/extension/site-management/seo-a-metadata/canonical-url qui font quelque chose de similaire. (Jamais essayé celui-ci, juste googlé une touche.)