首页 > 解决方案 > Hybris 的多国站点

问题描述

我的 Hybris 项目中有一个网站,其 URL 模式如下:

localhost:9002/en-uk

店面上下文根在 mystorefront project.properties文件中也保存为 en-uk 。

如何为其他国家/地区扩展它并为我的新国家/地区创建一个新站点。我尝试更改现有站点 impex 并更改那里的 URL,但它没有产生任何结果。

我应该像上面突出显示的那样更改 mystorefront project.properties文件中的店面上下文根吗?

标签: hybris

解决方案


如果您有一个单独的店面扩展,那么您的店面上下文对于所有网站 (CMSSite) 都是通用的。我建议将其保留为根 (/)。如果您真的想在站点 URL 中包含店面上下文,请保持其通用性。不要包含国家/语言代码,因为当有人使用 /en-uk 访问美国网站时它没有意义。


1)将店面上下文设置为root

  1. 将HAC webroot 从更改//hac
  2. 将您的店面 webroot 和 StorfrontContextRoot 设置为空白
  3. 更改每个 cmsStore 的网站和媒体 URL
  4. 制作主机文件条目 127.0.0.1 localhost us.local uk.local

local.properties

hac.webroot=/hac

#change <yourproject> with your storefront extension prefix
<yourproject>storefront.webroot=

#If you are using B2C then below propery would be StorefrontContextRoot
b2bStorefrontContextRoot=

#change usCMSSiteUI with your us CMS site uid and similar for UK
website.usCMSSiteUID.http=http://us.local:9001
website.usCMSSiteUID.https=https://us.local:9002
media.usCMSSiteUID.http=http://us.local:9001
media.usCMSSiteUID.https=https://us.local:9002

website.ukCMSSiteUID.http=http://uk.local:9001
website.ukCMSSiteUID.https=https://uk.local:9002
media.ukCMSSiteUID.http=http://uk.local:9001
media.ukCMSSiteUID.https=https://uk.local:9002

2) 为每个 CMSSite 配置唯一的 URL 模式

希望您已经拥有每个站点的 CMSSite 实例。对于每个站点,您必须配置 URL 模式。

例如 在此处输入图像描述

英国CMS网站

(?i)^https?://[^/]+(/[^?]*)?\?(.*\&)?(site=UK)(|\&.*)$
(?i)^https?://uk\.local:9002$

美国CMS网站

(?i)^https?://[^/]+(/[^?]*)?\?(.*\&)?(site=US)(|\&.*)$
(?i)^https?://us\.local:9002$

3)启动您的服务器并访问它

如果您按照我上面提到的那样正确配置了您的网站,那么您可以像访问它一样访问它

https://us.local:9002 https://uk.local:9002

对于生产设置,您可以为每个站点 URL 模式配置(子)域,或者借助 Web 服务器通过传递?site=usuk来解析请求。


推荐阅读