Issue image 在AEM中使用标准RTE插件超链接功能时遇到此问题。
单击
但是,将鼠标悬停在生成的标记的链接或视图源上似乎是一个问题,其中链接显示的绝对路径为(/ content / te-com / usa / en / pages /…。),这会影响我们的SEO。< / p>
实际上,当我将鼠标悬停在链接上时,只有第一个链接被缩短,所有其他链接都显示绝对路径(/ content / te-com / ...路径)。我怀疑缓存的链接的路径变短有问题。
JCR中的节点存储:
<p>Hello <a href="/content/te-com/usa/en/pages/delete/smart-factory.html">one</a> and <a href="/content/te-com/usa/en/pages/delete/pgp-test0.html">two</a>. </p>
从源代码生成的HTML标记:
<div class="global-rte-std-bold global-labels parbase section"><p>Hello <a href="/usa-en/delete/smart-factory.html">one</a> and <a href="/content/te-com/usa/en/pages/delete/pgp-test0.html">two</a>. </p>
但是,当我在使用RTE时添加班次+ Enter时,会添加
标记,并且所有链接的URL都会以某种方式缩短,如下面的标记所示。节点存储仍然与上面相同,就像没有shift + enter的存储一样
生成的标记(观察到URL缩短了):
<div class="global-rte-std-bold global-labels parbase section"><p>Hello <a href="/usa-en/delete/smart-factory.html">one</a> and<br><a href="/usa-en/delete/pgp-test0.html">two</a>. </p>
此外,我们在Apache中具有以下重写规则,当我单击链接时,该规则实际上生效。我怀疑带有RTE的缓存URL出现此问题。
RewriteRule ^ /?usa-zh /?(.*)$ / content / te-com / usa / zh / pages / $ 1 [PT,QSA]。
注意:我们尚未自定义RTE插件及其在AEM 6.2上一直使用的标准超链接插件
此处使用的代码很简单
我想知道如何使用shift + Enter正常工作,而不是当我在同一行上拥有链接时。
在此方面的任何帮助将不胜感激。谢谢
答案 0 :(得分:0)
当您使用RTE编辑器链接内部页面/资产时,URL缩短不起作用。我遇到了同样的情况,为此,我不得不编写自定义Sling重写程序来转换链接,以便resourceResolver.map(path)正常工作。
@Override
public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {
int hrefIndex = atts.getIndex("href");
String href = atts.getValue("href");
atts.setValue(hrefIndex, resolver.map(href));
}