我正在寻找用于具有多个版本的网络应用程序的最佳 URL 架构,即多种语言和供手机使用的简化版本 - 两个方面都可以结合使用,因此有一个英语常规版本和移动版本,德语普通版和移动版等。
目标(按重要性排序):
- 用户友好性
- 搜索引擎友好度
- 易于开发
需要考虑的方面:
- URL 应该是什么样的?
- 用户应如何在版本之间导航?
- 应该有多少逻辑来自动决定一个版本?
我将在下面描述我的概念,也许你们中的一些人有更好的想法。
最佳答案
我目前的想法:
- 当新用户到达时,应用会根据 cookie(见下文)、Accept-Language: header 和用户代理字符串(用于识别移动浏览器)决定显示哪个版本,但不会在网址(无重定向)
- 默认为非简体英文版
- 有突出显示的图标(旗帜、程式化手机)可供选择其他版本
- 当用户明确选择不同的版本时,这会同时反射(reflect)在更改后的 URL 和浏览器 cookie 中
- “自动”版本的 URL 架构为/,语言版本为/en/、/de/等,简化版本为/mobile/,非简化版本为/normal/,以及组合其中,即/mobile/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/并接受人们访问/通过搜索引擎可能看到的版本与他们在搜索引擎中找到的版本不同?
关于seo - 多版本网络应用程序的 URL 方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/454229/