Résolution d’URL canoniques et de plan de site incorrectes ou en double à partir de la configuration de domaine et de protocole AEM

Les URL de plan de site et de balises canoniques générées par AEM affichent le mauvais domaine, le mauvais protocole, les chemins d’accès relatifs ou les balises canoniques en double lorsque les propriétés de la page, l’externaliseur, les en-têtes de requête ou la logique du modèle ne sont pas configurés correctement. Les causes les plus courantes sont une configuration de domaine d’externaliseur manquante, un en-tête de X-Forwarded-Proto manquant, des règles de clientheaders du Dispatcher incorrectes ou une logique de modèle qui émet une deuxième balise canonique. La correction des paramètres de la propriété de page et du service Externalizer, la vérification que l’en-tête du protocole atteint AEM et la suppression de la logique de modèle en double restaurent les URL canoniques et de plan de site correctes.

Description description

Problème : AEM émet des URL canoniques et de plan de site incorrectes, en double ou relatives

Description

Les sites d’AEM affichent des URL canoniques incorrectes (http au lieu de https, URL relatives ou URL complètes manquantes) ou génèrent des plans de site contenant des URL relatives au lieu d’URL absolues. Dans certains cas, AEM injecte une balise canonique par défaut lorsqu’une implémentation personnalisée en génère déjà une, ce qui génère des doublons. Des propriétés de page mal configurées, une configuration de domaine d’externaliseur manquante, des en-têtes de X-Forwarded-Proto manquants, des règles de clientheaders du Dispatcher incorrectes ou une logique au niveau du modèle qui émet automatiquement des balises canoniques déclenchent tous ces symptômes.

Environnement :

  • Adobe Experience Manager as a Cloud Service (AEMaaCS)
  • AEM Managed Services
  • AEM 6.5 On-premise
  • Dispatcher et CDN / niveaux de répartition de charge

Problème/Symptômes :

  • Les URL canoniques apparaissent sous la forme http:// au lieu de https://
  • Le plan de site contient uniquement des slugs ou des URL relatives au lieu des URL absolues
  • Les balises canoniques en double apparaissent dans la source de la page
  • La balise canonique générée automatiquement par AEM affiche uniquement un chemin relatif au lieu de l’URL complète

Cause principale :

AEM détermine les URL canoniques et de plan de site à partir d’une combinaison de propriétés de page, de la configuration de l’externaliseur, des en-têtes de requête (en particulier X-Forwarded-Proto), des mappages de résolveur de ressources et d’une logique spécifique au modèle. Lorsqu’un de ces éléments est manquant, mal configuré ou remplacé, AEM génère des URL incorrectes, en double ou relatives. Certains comportements de plan de site sont également des limitations dans le module de plan de site Apache Sling.

Comment confirmer

  1. Faites correspondre le symptôme observé à une catégorie : balises canoniques en double, protocole incorrect (http), domaine manquant ou plan de site générant des URL relatives.
  2. Inspectez la source de la page et confirmez le nombre de balises canoniques présentes et si chacune d’elles utilise le protocole et le domaine appropriés.
  3. Récupérez les <site>.sitemap-index.xml dans un navigateur et vérifiez si les entrées sont des URL absolues ou relatives.

Résolution resolution

  1. Correction des balises canoniques en double ou incorrectes. Ouvrez Propriétés de page > Avancé et recherchez le champ URL canonique, qui contrôle la génération canonique automatique. Effacez ou mettez à jour la valeur selon vos besoins, puis rechargez la source de la page et confirmez qu’il ne reste qu’une seule balise canonique. Si la balise générée automatiquement s’affiche toujours, recherchez la logique de modèle qui ajoute une seconde balise canonique dans le headerlibs ou le head.html personnalisé, puis supprimez ou désactivez la logique de doublon.

  2. Correction des URL canoniques qui utilisent le mauvais protocole. Confirmez que votre réseau CDN ou votre répartition de charge envoie l’en-tête :

    code language-none
    X-Forwarded-Proto: https
    

Inspectez les en-têtes de requête entrants avec les outils de développement du navigateur ou curl pour vérifier que l’en-tête est présent. S’il est manquant, mettez à jour les règles du réseau CDN ou de la répartition de charge.
​3. Pour AEMaaCS, passez en revue la configuration OSGi déployée via Cloud Manager pour org.apache.felix.http.sslfilter.SslFilter, avec les valeurs de champ suivantes :

  • enable = true
  • forwarded = true
  • forwarded.header = X-Forwarded-Proto
  • forwarded.value = https

Après le déploiement, affichez la source de la page pour confirmer que la génération canonique utilise https.
​4. Correction d’URL relatives ou d’un domaine manquant dans le plan du site. Vérifiez que l’entrée sitemap-index.xml est utilisée : les URL absolues apparaissent souvent uniquement dans les sitemap-index.xml et non dans les fichiers de sitemap.xml enfants. Ensuite, assurez-vous que la configuration de votre domaine Externalizer est déployée via le code, en utilisant la configuration com.day.cq.commons.impl.ExternalizerImpl-publish. Ajoutez un lien de test simple à l’aide de externalizer.externalLink ou externalizer.publishLink pour confirmer que l’externaliseur génère des URL absolues.
​5. Générez des plans de site à l’aide des fonctionnalités prêtes à l’emploi d’AEM. Vérifiez l’option Générer le plan de site est activée ou désactivée correctement au niveau de chaque page. Pour les pages marquées comme racine de plan de site, AEM génère des sitemap.xml et des sitemap-index.xml. Accédez directement à /content/<path>.sitemap-index.xml ou /content/<path>.sitemap.xml pour confirmer que le code XML attendu est produit. Si les URL ne renvoient rien, confirmez que la page est publiée. Si vous utilisez les plans de site Edge Delivery Services (EDS), notez que lastmod et changefreq ne sont pas pris en charge. Il s’agit d’une limitation stricte. N’essayez donc pas de personnaliser le plan de site EDS.
​6. Pour les sites MSM ou multilingues sur AEMaaCS, utilisez le plan de site Sling intégré avec une sling:sitemapRoot au niveau de la page. Le générateur de plans de site ACS Commons n’est pas pris en charge. Vérifiez sling:sitemapRoot = true est présent sur chaque racine de langue, puis accédez <langroot>.sitemap-index.xml pour confirmer que chaque racine de langue produit son propre plan de site.

Validation

  1. Ouvrez la source de la page et vérifiez qu’il n’existe qu’une seule balise canonique, que le protocole est correct et que le domaine correspond à la configuration attendue.
  2. Ouvrez sitemap-index.xml et sitemap.xml et vérifiez que les URL absolues apparaissent lorsqu’elles sont prises en charge, sans slugs relatifs, sauf si les limitations de plan de site Apache Sling l’exigent.
  3. Confirmez que les modifications apportées à la configuration du Dispatcher, du réseau CDN ou d’OSGi se propagent après le déploiement. AEMaaCS les applique automatiquement au déploiement.

Lecture connexe

recommendation-more-help
experience-cloud-kcs-help-kbarticles