Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多语言网站URL的最佳实践_Url_Multilingual_Url Design - Fatal编程技术网

多语言网站URL的最佳实践

多语言网站URL的最佳实践,url,multilingual,url-design,Url,Multilingual,Url Design,翻译网站URL的最佳策略是什么?我经常看到的是: http://example.com/english-slug.html http://example.com/de/english-slug.html http://example.com/fr/english-slug.html 这有一个(次要)优点,用户可以通过修改URL手动切换到另一种语言。缺点似乎是,对于不是默认语言的每个页面,URL都包含一个错误语言的slug。我认为,这将导致搜索引擎优化处罚 另一种方法是翻译slug,并选择性地省

翻译网站URL的最佳策略是什么?我经常看到的是:

http://example.com/english-slug.html
http://example.com/de/english-slug.html
http://example.com/fr/english-slug.html
这有一个(次要)优点,用户可以通过修改URL手动切换到另一种语言。缺点似乎是,对于不是默认语言的每个页面,URL都包含一个错误语言的slug。我认为,这将导致搜索引擎优化处罚

另一种方法是翻译slug,并选择性地省略语言标识符:

http://example.com/english-slug.html
http://example.com/deutscher-slug.html
http://example.com/slug-francois.html

有些语言实际上不适合被“slaggified”,比如俄语、汉语和阿拉伯语。如果你能负担得起的话,最好的解决办法就是用正确的名称发送文档,也就是说,在每种语言上使用正确的单词

当然,每个文档都应该在标题上带有相应的语言设置

为了存储它们,您可以使用文件夹,并让web服务器根据语言首选项选择正确的文档;或者您可以使用服务器端技术,如PHP、perl等来发送文档并调整URL

在任何情况下,当您没有所请求的语言时,必须发送一种默认语言

如果您不能或不想使用正确的名称发送文档,那么使用子域是下一步的最佳选择。这一选项不像在域后添加语言那样常见,这意味着人们可能不会习惯它,尽管它有一些优点,例如

  • 每种语言的行为都像一个全新的URL/站点(几乎)
  • 人们喜欢访问一个专门的网站,而不是一个第二语言被降级并随时可能失败的分部(某些内容可能无法翻译)
  • 有些人不熟悉他们用两个字母表示的语言,但每个人都知道他的语言是如何命名和拼写的
  • 它生成更干净的URL
  • 人们相信拥有子域会增加SERP上的外观(我不知道这一点,它可能已经改变了)
  • 如果您愿意,使用不同的布局会更容易
  • 根据语言设置不同的服务器更容易
当然,子域也有一些缺点,例如:

  • 要从服务器的角度正确设置,需要做更多的工作
  • 从角色到高排名的协作较少
  • 有些人可能不希望看到它,但希望看到一个子文件夹
接下来是子文件夹选项,如您在问题上所示。如果你的主要观点是SEO,这是推荐的方法,因为所有领域的相关性都停留在同一个领域,每种语言都有助于一个共同的排名“锅”

我的观点是,在任何情况下,在选择解决方案时,都不会选择SEO。无论我得到什么样的排名,都是因为内容本身以及我对技术的最佳利用。但我知道我的观点不是最普遍的

还有一件事要考虑的是,你应该提供某种解释或帮助用户,这样他就可以采取行动来转变为首选语言。它可能使用图标、工具提示或任何其他适用于您的设计和详细性的方法


有一件事是要避免的,你并没有要求它,但它是相关的;正在使用语言自动检测。很多时候,用户在不同的国家或使用的浏览器版本与他所能理解的语言不同,而自动检测只会造成混乱。提供默认版本和明确的更改方法。

我认为您应该使用语言标记和翻译的slug:

http://example.com/en/hello-world
http://example.com/de/hallo-welt
为什么是语言标签?避免碰撞。
有时,您可能希望在不同的语言中使用相同的slug(例如,英语和德语中的“team”)

为什么要翻译路径?为了更好的可用性。
并非所有用户都理解“默认”语言,根据其脚本,他们甚至可能无法键入/记住/口述slug。(首先,使用只有部分用户能够理解的人类可读的slug是没有意义的。)

是的,用户可以通过修改URL手动切换到另一种语言,这将是一个“(次要)优势”。但是,用户或搜索引擎不太可能期望这样做有效(请参阅)。因此,您的收益很小(针对高级用户的URL黑客攻击),而损失很大(对于使用非默认语言的用户来说,可用性很差)


也就是说,在大多数情况下仍然可以启用此URL黑客功能:当用户将语言标签
de
(在
/de/hallo-welt
)更改为
en
/en/hallo-welt
)时,可以检查它是否存在(如果存在,则显示),如果不存在,则检查任何语言中是否存在slug“hallo-welt”,查找其英文翻译并重定向到它(从
/en/hallo-welt
/en/hello-world
)。

另一种方法是将语言设置为查询字符串参数,例如:


例如,Google Flights网站使用这种方法。

我会选择第一个选项,但文件名中没有“english”字样。这里有一个很好的解释:“英语”一词只是用来说明英语中的slug将被使用。所以:用任何英语slug替换“english slug”,例如“hello world”。“德国鼻涕虫”>“你好世界”和“鼻涕虫弗朗索瓦”>“你好世界”。谢谢你的回复。服务器端处理根本不是问题所在。这只是URL的最佳实践问题。我找不到关于用户体验和SEO的可靠来源。虽然您声明后一个选项是首选选项,但您不会使用参数或源来备份它。这就留下了难看的音译问题。另一个想法是,搜索引擎可以通过子目录推断翻译的结构