我有吊索映射設置,將外出路徑重寫到外部URL。這個重寫的例子: /content/www-sitename/home.html
將被改寫爲http://www.sitename.com/home.html
吊索映射重寫規則不重寫元標記中的路徑
我也配置了LinkCheckerTransformerFactory:linkcheckertransformer.rewriteElements=["a:href","area:href","form:action","link:href","meta:content"]
在頁面組件一些HTML:
<head>
<link rel="canonical" href="/content/www-sitename/home.html" />
<meta name="canonical" content="/content/www-sitename/home.html" />
</head>
訪問時,只有鏈接: href已被重寫,meta:內容不變:
<head>
<link rel="canonical" href="http://www.sitename.com/home.html" />
<meta name="canonical" content="/content/www-sitename/home.html" />
</head>
值得注意的是,在配置linkcheckertransformer.rewriteElements
以包含它之前,鏈接:href未被重寫。爲什麼這個變化適用於鏈接:href,而不是meta:content。除了創建自定義重寫過濾器之外,還可以做些什麼來獲取meta中的鏈接:content屬性是否需要重寫?
謝謝你們兩位!有沒有辦法做到這一點,而不修改_libs_?我試着按照_apps_下的位置創建_/apps/cq/config/rewriter/default/generator-htmlparser_,但這不起作用。 – 2014-10-02 23:09:20
我已經更新了我的答案。 – 2014-10-03 07:21:14
再次感謝@Tomek。我有一個關於重寫包含'jcr:content'的URL的後續問題。請參閱:http://stackoverflow.com/questions/26220078/sling-mapping-rewrite-rules-do-not-rewrite-jcrcontent-paths – 2014-10-06 15:57:14