hybris - Hybris 的多国站点
问题描述
我的 Hybris 项目中有一个网站,其 URL 模式如下:
localhost:9002/en-uk
店面上下文根在 mystorefront project.properties文件中也保存为 en-uk 。
如何为其他国家/地区扩展它并为我的新国家/地区创建一个新站点。我尝试更改现有站点 impex 并更改那里的 URL,但它没有产生任何结果。
我应该像上面突出显示的那样更改 mystorefront project.properties文件中的店面上下文根吗?
解决方案
如果您有一个单独的店面扩展,那么您的店面上下文对于所有网站 (CMSSite) 都是通用的。我建议将其保留为根 (/)。如果您真的想在站点 URL 中包含店面上下文,请保持其通用性。不要包含国家/语言代码,因为当有人使用 /en-uk 访问美国网站时它没有意义。
1)将店面上下文设置为root
- 将HAC webroot 从更改
/
为/hac
- 将您的店面 webroot 和 StorfrontContextRoot 设置为空白
- 更改每个 cmsStore 的网站和媒体 URL
- 制作主机文件条目
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=us或uk来解析请求。
推荐阅读
- ios - 为什么需要标记 CocoaPods podspec 的存储库?
- bash - 如何在 Bash 中调试“条件表达式中的语法错误”?
- asp.net - 录制过程中文件上传失败
- c - Gnu Make >$* 和 $* 的含义
- android - Nativescript:如何从文件路径创建一个 JS File 对象?
- python - 为什么从 /sys/bus/... 读取需要这么多时间?
- django - 使用 django 消息框架发送列表
- git - 我可以在没有 Git 的情况下创建 vue-cli 项目吗?
- node.js - Docusign 沙盒 | 总是返回 invalid_grant 错误 | 授权代码授予
- ansible - ansible将变量写入本地文件