Procédure de contournement de la validation d’URL pour les caractères spéciaux dans le vérificateur de liens

Découvrez comment contourner la validation d’URL pour les caractères spéciaux dans le vérificateur de liens en utilisant un attribut pour conserver le lien intact.

Description description

Environnement

  • AEM as a Cloud Service
  • AEM 6.5.17

Problème/Symptômes


Un composant personnalisé est nécessaire pour effectuer le rendu d’un lien contenant des caractères spéciaux non valides pour une URL. Même si l’option Désactiver le contrôle de la configuration LinkChecker est définie sur true, LinkChecker valide et supprime toujours le lien de l’HTML rendu.





Par exemple :

Un lien qui contient les caractères {" et "} non valides pour une URL.

<span><a href="{testURL}">TEST URL</a></span>

LinkChecker supprime le lien de l’HTML rendu

<span>>TEST URL</span>

Un URISyntaxException est alors connecté dans error.log en raison de ce processus de validation.

23.01.2024 12:43:34.500 *WARN* [ 000.000.000.000 [ 1705981414300] GET /content/wknd/language-masters/en/test.html HTTP/1.1] com.day.cq.rewriter.linkchecker.impl.LinkCheckerImpl Ignoring malformed URI: java.net.URISyntaxException: Illegal character in path at index 0: {testURL}

Résolution resolution

Ajoutez l’attribut x-cq-linkchecker="skip" au lien dans le composant HTL (HTML Template Language) correspondant. Cet attribut indique à LinkChecker de contourner complètement la validation de l’URL.

Par exemple :

Si un lien utilise les caractères {" et "}" non valides dans une URL.
< span><a x-cq-linkchecker="skip" href="{testURL}">TEST URL</a></span>

Il (lien) reste dans l’HTML rendu.
< span><a x-cq-linkchecker="skip" href="{testURL}">TEST URL</a></span>

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f