リンクチェッカーで特殊文字の URL 検証をバイパスする手順

属性を使用してリンクをそのまま維持することで、リンクチェッカーで特殊文字の URL 検証をバイパスする方法を説明します。

説明 description

環境

  • AEM as a Cloud Service
  • AEM 6.5.17

問題/症状


URL で無効な特殊文字を含むリンクをレンダリングするには、カスタムコンポーネントが必要です。 LinkChecker 設定の Disable Checking オプションが true に設定されている場合でも、LinkChecker はレンダリングされたHTMLからリンクを検証および削除します。





例:

文字を含むリンク {"と"} は URL に対して無効です。

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

リンクチェッカーはレンダリングされたHTMLからリンクを削除します

<span>>TEST URL</span>

URISyntaxException は、この検証プロセスの結果として error.log に記録されます。

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}

解決策 resolution

それぞれの HTL (HTMLテンプレート言語)コンポーネントのリンクに x-cq-linkchecker="skip" 属性を追加します。 この属性は、URL 検証を完全にバイパスするように LinkChecker に指示します。

例:

リンクで URL で無効な文字 {」と「} が使用されている場合。
< span><a x-cq-linkchecker="skip" href="{testURL}">TEST URL</a></span>

この(リンク)はレンダリングされたHTMLに残ります。
< span><a x-cq-linkchecker="skip" href="{testURL}">TEST URL</a></span>

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