Loading

Cross site links are not working with API method URLUtils.abs for contents in B2C Commerce

公開日: Nov 26, 2025
説明
In case you want to create cross site links for content within your code you use the API method URLUtils.abs to create these links.

As example you have the following setup for 2 sites (SG and DE)
  • Aliases
{
 "__version" : "1", 
 "settings" : {
   "http-host" : "<yourhostname>",
   "https-host" : "<yourhostname>",
   "site-path" : "SG",
   "default" : "true"
 }
}

and

{
 "__version" : "1", 
 "settings" : {
   "http-host" : "<yourhostname>",
   "https-host" : "<yourhostname>",
   "site-path" : "DE",
   "default" : "false"
 }
}
  • Within htmlhead.isml you creating the cross links with
<isscript>
	var langurl: String = "";	
	var params: Array;	
	params = [];
	params.push( dw.web.URLParameter("cid", request.httpParameters["cid"][0]) );
	langurlSG = URLUtils.abs(new dw.web.URLAction("Page-Show", "SiteGenesis"), params);	
	langurlDE = URLUtils.abs(new dw.web.URLAction("Page-Show", "DE"), params);		
</isscript>
<link rel="alternate" hreflang="default" href="${langurlSG}" />
<link rel="alternate" hreflang="default" href="${langurlDE}" />
  • When you have setup the content url like
[ [ folder ] , / , [ attribute, name, noname ] ]
  • You will get the following results when calling the content
calling from DE
<link rel="alternate" hreflang="default" href="https://<yourhostname>/SG/privacy%20policy/privacy-policy.html" />
<link rel="alternate" hreflang="default" href="https://<yourhostname>/DE/customer%20service/privacy%20%26%20security/privacy%20policy/privacy-policy.html" />

calling from SG
<link rel="alternate" hreflang="default" href="https://<yourhostname>/SG/customer%20service/privacy%20%26%20security/privacy%20policy/privacy-policy.html" />
<link rel="alternate" hreflang="default" href="https://<yourhostname>/DE/privacy%20policy/privacy-policy.html" />

 
解決策

Content URL rule needs to be set to

[ [ folder, [ folder-parent, [ attribute, displayName], / ] ], / , [ attribute, name, noname ] ]


With this setup the urls are now looking identical

<link rel="alternate" hreflang="default" href="https://<yourhostname>/SG/customer%20service/privacy%20%26%20security/privacy%20policy/privacy-policy.html" />
<link rel="alternate" hreflang="default" href="https://<yourhostname>/DE/customer%20service/privacy%20%26%20security/privacy%20policy/privacy-policy.html" />
その他のリソース

Class URLUtils

ナレッジ記事番号

000391363

 
読み込み中
Salesforce Help | Article