如何将URL中的powertools替换为mystore?Hybris技术咨询
解决商品跳转路径中powertools替换为mystore的方案
我来帮你搞定这个路径替换的问题,结合你已经完成的配置,还需要调整以下几个关键步骤:
1. 修正local.properties的站点URL配置
首先检查并修正你的local.properties配置,确保mystore的站点URL正确(你之前的https端口少了一位,需要补全),同时保持storefront的webroot配置:
# 保留powertools站点配置(如果不需要可注释) website.powertools.http=http://powertools.local:9001/mystorefront website.powertools.https=https://powertools.local:9002/mystorefront # 修正mystore的HTTPS端口,确保和HTTP端口一致 website.mystore.http=http://localhost:9002 website.mystore.https=https://localhost:9002 # 保持已设置的webroot配置,让localhost直接映射到mystore站点 mystorefront.webroot= storefrontContextRoot=
2. 更新CMSSite的Impex配置,优化匹配规则
你现有的CMSSite配置需要调整URL匹配顺序,并关联BaseSite、设置为默认站点,这样生成链接时会优先使用mystore的配置。使用以下更新后的impex:
$siteUid=mystore $baseSiteUid=mystore # 先确保BaseSite已创建(如果还没有的话) INSERT_UPDATE BaseSite; uid[unique=true]; currency(isocode); language(isocode); storefrontUrl; ; $baseSiteUid ; USD ; en ; https://localhost:9002 ; # 更新CMSSite,调整URL匹配优先级并绑定BaseSite INSERT_UPDATE CMSSite; uid[unique=true] ; urlPatterns ; baseSite(uid) ; default[default=false] ; ; $siteUid ; (?i)^https?://localhost:9002(/.*)?$,(?i)^https?://[^/]+(/[^?]*)?\?(.*\&)?(site=$siteUid)(|\&.*)$,(?i)^https?://$siteUid\.[^/]+(|/.*|\?.*)$ ; $baseSiteUid ; true ;
这里的关键调整:
- 把
localhost:9002的精确匹配放在最前面,确保访问该地址时优先匹配mystore站点- 关联对应的BaseSite,让站点配置和商品数据绑定
- 设置
default=true,将mystore设为默认站点,链接生成逻辑会优先使用它
3. 配置站点路径映射(移除powertools前缀)
添加站点路径映射配置,确保生成的商品链接不再包含powertools前缀:
$siteUid=mystore INSERT_UPDATE SiteMapping; site(uid)[unique=true]; externalPrefix; internalPrefix; ; $siteUid ; /mystore ; / ;
这个配置会将外部访问的/mystore路径映射到内部根路径,同时确保生成的链接默认使用mystore的站点标识,替代powertools。
4. 让配置生效的收尾操作
完成以上配置后,需要执行以下步骤:
- 运行
ant updatesystem命令,让impex配置同步到系统中 - 通过Hybris管理控制台(HAC)清理所有缓存,或者直接重启Hybris服务器
- 重启服务器后,等待系统完全加载
验证效果
重启后访问https://localhost:9002,点击任意商品查看跳转链接,应该会变成类似https://localhost:9002/en/USD/Open-Catalogue/Tools/Measuring-%26-Layout-Tools/c/1358,不再包含powertools前缀。如果还有问题,可以到HAC的CMSSite和BaseSite页面检查配置是否正确,确认mystore是默认站点。
内容的提问来源于stack exchange,提问作者user9708984
相关产品推荐
相关产品推荐

