方案
Web服务器收到http://domain.com/folder/page
的请求。 Accept-Language 标题告诉我们用户更喜欢希腊语,语言代码为el
。这很好,因为我们有希腊版page
。
现在我们可以使用URL执行以下操作之一:
http://domain.com/folder/page
http://domain.com/folder/page/el
http://domain.com/el/folder/page
http://el.domain.com/folder/page
http://domain.com/folder/page?hl=el
哪一个最好?从用户的角度来看,优点,缺点?开发人员的观点?
答案 0 :(得分:16)
如果您的页面是公开可用的,我不会选择选项1,即您无需登录即可查看页面。 原因是搜索引擎不会扫描页面的不同语言版本。 同样的原因再次是选项5号。如果语言标识在查询字符串中,搜索引擎不太可能将两个页面识别为单独的页面。
让我们看看选项4,将语言放在主机名中。如果网站的不同语言版本包含完全不同的内容,我会使用该选项。例如,在维基百科这样的网站上,希腊语版本包含其自己的完整文章集,而英文版本则包含另一组文章。
因此,如果你没有完全不同的内容(你的帖子看起来不像),你会留下选项2或3.我不知道是否有任何令人信服的论据。其他,但没有。 3在我眼中看起来更好看。这就是我要用的。
但只是对灵感的评论。我目前正在开发一个Web应用程序,它有3个主要部分,一个公共部分,两个部分用于两种不同的用户类型。我选择了以下网址方案(当然是指语言):
http://www.example.com/en/x/y/z for the public part.
http://www.example.com/part1/en/x/y/z for the one private part
http://www.example.com/part2/en/x/y/z for the other private part.
这样做的原因是,如果我将这三个部分拆分为单独的应用程序,那么当我在路径顶部有部件名称时,将在Web服务器中进行简单的重新配置。例如。如果我们使用商业CMS系统作为网站的公共部分
编辑: 反对选项号的另一个论点。 1是如果你只听取接受语言,你就不会给用户一个选择。用户可能不知道如何更改在浏览器中设置的语言,或者可能正在使用frinds计算机设置到不同的语言。您至少应该给用户一个选择(将其存储在cookie或用户的个人资料中)
答案 1 :(得分:6)
我选择 3号,重定向到http://example.com/el/folder/page
,因为:
http://example.com/el/
为广告,所以每个本地访问者都会到达希腊的网站,避免选择语言挫折。或者,您可以选择 5号:对于Google和朋友来说这很好,但对用户来说却不是很好。
此外,我们应该避免将用户重定向到任何地方,除非需要。因此,在我看来,打开http://example.com/folder/page
的用户应该不是重定向,而是使用默认语言的页面。
答案 2 :(得分:2)
第四个是最好的选择,因为它很早就指定了语言代码。如果您要提供任何重定向,请务必使用规范链接标记。
答案 3 :(得分:2)
我自己的选择是#3:http://domain.com/el/folder/page
。它似乎是网上最受欢迎的。所有其他选择都存在问题:
http://domain.com/folder/page
---对SEO不好?http://domain.com/folder/page/el
---不适用于带参数的页面。这看起来很奇怪:...页面?par1 = x& par2 = y / el http://domain.com/el/folder/page
---看起来不错!http://el.domain.com/folder/page
---部署需要更多工作,因为它需要添加子域。http://domain.com/folder/page?hl=el
---对SEO不好?答案 4 :(得分:2)
选择选项5,我不相信它对SEO有害。
此选项很好,因为它显示的内容为:
http://domain.com/about/corporate/locations
与中的内容相同
http://domain.com/about/corporate/locations?hl=el
除了语言不同外
hl
参数应覆盖Accept-language
标头,以便用户可以轻松控制此事。只有在缺少hl
参数时才会使用标头。由此授予链接有点复杂,并且应该通过cookie来解决,该cookie将使重定向保持为hl
参数所选择的语言(因为它可能已被用户从{{{ 1}}设置,或者处理页面上的所有链接以添加当前Accept-language
参数。
搜索引擎优化问题可以通过为stackoverflow创建索引文件来解决,这些问题可能包括不同语言的多组索引,希望鼓励在非默认语言的结果中显示。
使用1会删除URL中的区分符。使用2和3表明页面是不同的,可能超出了语言,就像维基百科一样。使用4表明服务器本身是分开的,甚至可能是地理上的。
由于地理位置与语言偏好之间的相关性令人惊讶地差,因此提供地理上贴近的服务器的问题应留给适当的CDN设置。
答案 5 :(得分:1)
这取决于。我个人会选择四号,但许多成功的公司都有不同的方法来实现这一目标。
这完全取决于你。您认为您的客户最喜欢什么?
答案 6 :(得分:1)
他们都不是。 “普通用户”不会理解(并记住)任何这些缩写。
按照优先顺序,我建议:
答案 7 :(得分:1)
3或4。
3:可以使用htaccess / mod_rewrite轻松处理。唯一的缺点是你必须编写一些自动注入语言代码的方法作为URI的第一部分。
4:可能是最好的方法。使用主机标头,它可以全部发送到同一个Web应用程序/内容,但您可以使用代码提取语言代码并从那里开始。
Simples。 ;)
答案 8 :(得分:0)
我更喜欢3或4