国际化网络应用的网址格式?

时间:2009-08-22 12:05:11

标签: url internationalization

方案

Web服务器收到http://domain.com/folder/page的请求。 Accept-Language 标题告诉我们用户更喜欢希腊语,语言代码为el。这很好,因为我们有希腊版page

现在我们可以使用URL执行以下操作之一:

  1. 返回保留当前网址的希腊语版本:http://domain.com/folder/page
  2. 重定向到http://domain.com/folder/page/el
  3. 重定向到http://domain.com/el/folder/page
  4. 重定向到http://el.domain.com/folder/page
  5. 重定向到http://domain.com/folder/page?hl=el
  6. ......其他选择?
  7. 哪一个最好?从用户的角度来看,优点,缺点?开发人员的观点?

9 个答案:

答案 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,因为:

  1. 语言选择比页面选择更重要,因此选择的语言应首先在真正的人类可读URL中。
  2. 只有一个域获得Google的所有公关。这对SEO很有用。
  3. 您可以使用内置的语言代码在本地宣传您的网站。例如。在希腊,你会以http://example.com/el/为广告,所以每个本地访问者都会到达希腊的网站,避免选择语言挫折。
  4. 或者,您可以选择 5号:对于Google和朋友来说这很好,但对用户来说却不是很好。

    此外,我们应该避免将用户重定向到任何地方,除非需要。因此,在我看来,打开http://example.com/folder/page的用户应该不是重定向,而是使用默认语言的页面。

答案 2 :(得分:2)

第四个是最好的选择,因为它很早就指定了语言代码。如果您要提供任何重定向,请务必使用规范链接标记。

答案 3 :(得分:2)

我自己的选择是#3:http://domain.com/el/folder/page。它似乎是网上最受欢迎的。所有其他选择都存在问题:

  1. http://domain.com/folder/page ---对SEO不好?
  2. http://domain.com/folder/page/el ---不适用于带参数的页面。这看起来很奇怪:...页面?par1 = x& par2 = y / el
  3. http://domain.com/el/folder/page ---看起来不错!
  4. http://el.domain.com/folder/page ---部署需要更多工作,因为它需要添加子域。
  5. 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)

这取决于。我个人会选择四号,但许多成功的公司都有不同的方法来实现这一目标。

  • 维基百科使用各种子域名 语言(el.wikipedia.org)。
    • 雅虎(es.yahoo.com为西班牙语)也是如此,虽然它不支持希腊语。
    • Gravatar(el.gravatar.com)
    • 也是如此
  • Google使用/ intl / el /目录。
  • Apple使用/ gr /目录(尽管是英文版,仅限于iPhone页面)

这完全取决于你。您认为您的客户最喜欢什么?

答案 6 :(得分:1)

他们都不是。 “普通用户”不会理解(并记住)任何这些缩写。

按照优先顺序,我建议:

  1. http://www.domain.gr/folder/page
  2. http://www.domain.com/
  3. http://domain.com/gr/folder/page

答案 7 :(得分:1)

3或4。

3:可以使用htaccess / mod_rewrite轻松处理。唯一的缺点是你必须编写一些自动注入语言代码的方法作为URI的第一部分。

4:可能是最好的方法。使用主机标头,它可以全部发送到同一个Web应用程序/内容,但您可以使用代码提取语言代码并从那里开始。

Simples。 ;)

答案 8 :(得分:0)

我更喜欢3或4