0

我正在寻找用于具有多个版本的网络应用程序的最佳 URL 架构,即多种语言和手机使用的简化版本 - 这两个方面可以结合起来,所以有一个英语常规版本和一个移动版本,一个德语普通版和手机版等

目标(按重要性排序):

  • 用户友好性
  • 搜索引擎友好度
  • 易于开发

需要考虑的方面:

  • URL 应该是什么样子的?
  • 用户应该如何在版本之间导航?
  • 自动决定一个版本应该有多少逻辑?

我将在下面描述我的概念,也许你们中的一些人有更好的想法。

4

3 回答 3

2

我目前的概念:

  • 当新用户到达时,应用程序根据 cookie(见下文)决定 Accept-Language: 标头和用户代理字符串(用于标识移动浏览器)显示哪个版本,但不会在 URL 中反映这一点(没有重定向)
  • 默认为非简体英文版
  • 有突出显示的图标(旗帜,风格化的手机)以选择其他版本
  • 当用户明确选择不同的版本时,这会反映在更改的 URL 和浏览器 cookie 中
  • URL 模式是 / 用于“自动”版本,/en/、/de/ 等用于语言版本,/mobile/ 用于简化版本,/normal/ 用于非简化版本,以及它们的组合,即 /移动/en/和/normal/de/
  • mod_rewrite 用于剥离这些 URL 前缀并将它们转换为 GET 参数以供应用程序解析
  • robots.txt 不允许 /mobile/ 和 /normal/

好处:

  • 不同的语言版本都被搜索引擎单独索引
  • Cookie 有帮助,但不是必需的
  • 人们很有可能会看到最适合他们的版本,而无需做出任何选择
  • 用户总是可以明确地选择他想要的版本(这使得 /normal/ URL 是必要的)
  • 每个版本都有一个 URL,当传递给其他版本时,该 URL 将准确显示该版本
  • /mobile/ 和 /normal/ 被搜索引擎忽略;它们只会是重复的内容。

缺点:

  • 需要大量使用 mod_rewrite,我觉得这很神秘
  • 用户可以将他们当前的 URL 发送给某人,而该人在访问它时最终可能会看到不同的版本,这可能会导致混淆
  • / 和 /en/ 之间仍然存在重复的内容 - 我不能在 robots.txt 中禁止 / - 我应该相信搜索引擎不会因为同一域上的完全相同的内容而惩罚我,还是禁止 /en/ 并接受访问/通过搜索引擎的人可能会看到与他们在搜索引擎中找到的不同的版本?
于 2009-01-17T22:46:37.607 回答
2

我个人建议子域。

我根本不会包括移动设备——使用用户代理来确定这一点,并且可能使用 cookie 以防用户想在他们的移动设备上查看完整的网站(想想 Flickr 和 Google 是如何做到的)。但是对于语言,是的 - 主要语言位于http://mydomain.com/,次要语言位于http://de.mydomain.com/http://fr.mydomain.com/

于 2009-01-19T09:56:44.563 回答
1

我不清楚您为什么要在 URL 方案中包含任何类型的版本控制信息,例如接受语言或用户代理,具体指定。URL 方案应仅指示内容。服务器应调查各种请求标头以确定如何检索和/或格式化响应。

于 2009-01-17T23:40:20.353 回答