我有以下网站结构。默认情况下,当您访问网站MyWebsite.com时,正在加载的页面是韩国(MyWebsite / Korea / Home)下的Home项目。
我需要做的是:
当该网站在中国访问时,默认主页应该是中国(MyWebsite / china / Home)下的主页。与日本相同,当该网站访问或浏览日本时,默认主页应该是日本的主页(MyWebsite / Japan / Home)。除此之外,默认主页应该是韩国的主页。
怎么做?在Sitecore中做到这一点最好的是什么。
我正在尝试使用Geolocation HTML5 API来确定位置。然后在我知道位置后重定向到相应的页面。但我犹豫不决,因为我认为在Sitecore中可能有更好的方法。
非常感谢您的建议和帮助。
谢谢,
答案 0 :(得分:2)
您的选项似乎是:
在管道中使用geoIP查找服务,根据用户的位置重定向用户--Maxmind提供免费实施,为您提供国家/地区。
您可以稍微改变您的方法 - 使用geoip使用Sitecore的个性化引擎来宣传主页。这样您就有了1个主页,但根据用户的位置向用户显示不同的组件。如果内容不同但每个站点的整体站点结构相同,这是理想的。
如果网站根本不同,那么您可以将它们设置为Sitecore中的单独网站,并将它们绑定到不同的主机名,即mysite.jp,mysite.cn等。使用您当前的设置,您可能会遇到交叉链接问题 - 即中国网站上的访问者可以访问韩文页面。
最终选项(我相信现在在sitecore 8中可用)是拥有1个主页并按语言改变演示文稿。之前无法进行此操作,因为共享了布局字段。
要扩展此选项,Sitecore 8已更改了页面布局的创建方式。以前,__Renderings字段在所有语言版本中共享。现在仍然如此,但现在增加了一个_FinalRenderings字段。如果您打开一个项目并查看演示文稿>从功能区的详细信息视图中,您将看到两个选项卡 - 共享布局和最终布局。这是最终的布局,可以跨语言版本变化。如果您在页面编辑器中打开页面,那么您正在编辑的是最终布局。有关更详细的说明,请参阅以下博客: http://www.seanholmesby.com/presentation-details-changes-in-sitecore-8-how-renderings-are-stored/ http://roundedcube.com/Blog/2015/exploring-sitecore-8-versioned-layouts
要实现这一点,请打开您的基本主页 - 韩语我认为在您的示例中并使用日语创建一个新的语言版本(这里是Sitecore市场的一个有用工具的链接,可以立即复制韩语版本的所有内容 - 不确定它是否适用于8 https://www.cognifide.com/blogs/sitecore/quickly-create-new-language-versions-on-your-sitecore-cms/)
获得日语版后,打开演示文稿详细信息并开始编辑布局。如果您现在发布并查看韩语页面,您应该看到与韩语版本不同的布局。
完成此操作后,您将通过使用Sitecore语言设置来控制您的内容来解决您的问题 - 如果用户更改语言,或者您访问www.mysite.com/jp-jp,那么您应该会看到日语主页的版本
答案 1 :(得分:2)
正如@Moorag所建议的,Geo IP服务(或本地数据库)是实现基于位置的重定向的常用方法。 Sitecore市场中已有模块可以帮助解决这个问题。这是一个很好的:
..这里有一些关于这个主题的好帖子:
如果您担心进行查找所需的开销,那么较轻的权重选项是尝试使用用户的浏览器设置来初始确定国家/语言,这些设置包含在请求中。这篇文章有代码来实现它:
它不太准确,但在进入Geo IP查找失败之前,它可以是一个很好的“第一次通过”选项。