2

我有以下网站结构。默认情况下,当您访问 MyWebsite.com 站点时,正在加载的页面是韩国 (MyWebsite/Korea/Home) 下的主页项。

我需要做的是:

当网站在中国访问时,默认主页应该是中国下的主页(MyWebsite/china/Home)。日本也一样,当网站在日本访问或浏览时,默认主页应该是日本的主页(MyWebsite/Japan/Home)。除此之外,默认主页应该是韩国下面的主页。

这个怎么做?在 Sitecore 中最好的做法是什么。

我正在尝试使用 Geolocation HTML5 API 来确定位置。然后在我知道位置后重定向到相应的页面。但我很犹豫,因为我认为在 Sitecore 中可能有更好的方法来做到这一点。

非常感谢您的建议和帮助。

谢谢,

在此处输入图像描述

4

2 回答 2

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,那么您应该会看到日文版主页

于 2015-07-25T09:44:26.430 回答
2

正如@Moorag 建议的那样,Geo IP 服务(或本地数据库)是实现基于位置的重定向的常用方法。Sitecore 市场中已经有模块可以帮助解决这个问题。这是一个很好的:

..这里有一些关于这个主题的好帖子:

如果您担心进行查找所需的开销,那么一个较轻的选项是尝试使用作为请求的一部分包含的用户浏览器设置来初步确定国家/地区/语言。这篇文章有实现它的代码:

它不太准确,但如果失败,在进行 Geo IP 查找之前可能是一个很好的“第一次通过”选项。

于 2015-07-25T17:16:00.953 回答