web-dev-qa-db-fra.com

Les URL SEF sans ID d'article entraînent une erreur 404 article non trouvé

J'ai supprimé les ID d'articles de l'URL en modifiant le fichier router.php comme décrit ici .

Cela fonctionne généralement bien, mais quelques pages affichent une erreur 404 Article not found au lieu de la page appropriée. L'URL d'origine (avec l'ID d'article incorporé) fonctionne toujours. Autant que je sache, il n’ya pas de pseudonymes en double, mais je n’ai rien à exclure pour le moment.

J'utilise actuellement Joomla 3.4.8. Des idées?

2
GKarRacer

Eh bien, je crois que vous avez fait face à mon problème.

Vous pouvez y jeter un coup d'œil - vous découvrirez pourquoi cela se produit et comment y remédier rapidement.

https://github.com/joomla/joomla-cms/pull/10261

1
Alexandr

Oui, il est possible d'obtenir des URL sans ID en réécrivant le fichier router.php, mais je ne recommande pas de modifier les fichiers principaux ou les composants principaux tels que com_content pour une compatibilité future.

Vous devez utiliser un composant tel que SEF404 pour réécrire les URL en votre faveur. (Joomla 4 aura peut-être une meilleure solution intégrée.)

Indice pour les développeurs: S'il vous plaît jetez un coup d'œil à vos routeurs de composants, vous pouvez simplement écrire votre propre logique pour obtenir des URL d'objet sans ID et avec des alias optimisés par référencement.

1
Dennis Heiden

Je dirais (même si vous dites que vous avez déjà vérifié cela), que le problème est causé par des alias en double. Je vous recommande de vérifier que l'alias n'existe pas deux fois dans le #__content table (vous pouvez le faire dans phpMyAdmin). Vous rencontrerez ce problème même si le pseudonyme dupliqué se trouve dans un article supprimé (c'est pourquoi il est également important de supprimer vos articles supprimés).

En passant, nous avons publié un article il y a longtemps sur la suppression de l'identifiant de l'URL du SEF (c'est ici ), et quelqu'un a posté un commentaire sur la façon de le faire dans un plugin très simple ( au lieu d’un changement fondamental).

1
itoctopus