绕过LinkChecker中特殊字符的URL验证的步骤

了解如何使用属性保持链接完整,从而绕过LinkChecker中特殊字符的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>

LinkChecker将从渲染的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

x-cq-linkchecker="skip"属性添加到相应HTL(HTML模板语言)组件中的链接。 此属性指示LinkChecker完全绕过URL验证。

例如:

如果链接使用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