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

Arn*_*son 9 url internationalization

脚本

Web服务器获取请求http://domain.com/folder/page.在接受语言头告诉我们用户喜欢希腊,与语言代码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. ......其他选择?

哪一个最好?从用户的角度来看,优点,缺点?开发者视角?

Pet*_*ete 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.
Run Code Online (Sandbox Code Playgroud)

这样做的原因是,如果我将这三个部分拆分为单独的应用程序,当我在路径顶部有部件名称时,将在Web服务器中进行简单的重新配置.例如,如果我们使用商业CMS系统作为网站的公共部分

编辑:反对选项号的另一个参数.1是如果你只听取接受语言,你就不会给用户一个选择.用户可能不知道如何更改在浏览器中设置的语言,或者可能正在使用frinds计算机设置到不同的语言.您至少应该给用户一个选择(将其存储在cookie或用户的配置文件中)


san*_*mai 6

我选择3号,重定向到http://example.com/el/folder/page,因为:

  1. 语言选择比页面选择更重要,因此选择的语言应首先在真正的人类可读URL中.
  2. 只有一个域名获得所有Google的PR.这对SEO有好处.
  3. 您可以使用内置的语言代码在本地广告您的网站.例如在希腊你会广告http://example.com/el/,因此每个本地访客都会到达希腊的一个网站,并避免选择语言挫折.

或者,你可以选择5号:谷歌和朋友都可以,但对用户来说不是很好.

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