リンクチェッカーで特殊文字の 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>