多语言站点的Htaccess和URL

3

我准备使用子目录格式来制作我的多语言网站。 我的第一个问题是: 为了SEO,我是否需要在URL中翻译页面名称,还是无用的? 例如:

- Same filename
site.com/fr/login
site.com/en/login

或者

- Different filename
site.com/fr/connexion
site.com/en/login

那么,当用户在site.com网站上时:我是否应该根据用户的IP重定向他到site.com/en和site.com/fr?或者我应该设定默认本地语言,并将我的URL设置为site.com/page和site.com/fr/page?
最后,从用户当前的URL中获取本地语言的最佳方法是什么? 解析URL以获取/fr或/en,还是在URL中添加一个带有lang=fr的GET参数(由htaccess隐藏)。
谢谢 :)

你应该添加关于你的Web框架的信息。许多框架会自动透明地为你执行所描述的操作。 - Zulan
4个回答

2
作为前提条件,我假设您不使用框架/库。此外,我从未仅使用.htaccess解决过类似的问题(正如您的问题标题所请求的那样),因此不知道是否可以这样做。尽管如此,以下准则可能会对您有所帮助。 第一个问题 总体而言,网页文件名和路径对其排名有影响。此外,使用本地语言的页面名称和路径可能会帮助用户记住最重要的URL,即使没有将它们添加到书签中。
尽管如此,我永远不会为Web应用程序的页面翻译页面名称或目录(与信息或促销页面相反)。
您提到的登录页面是一个很好的例子。我几乎确定您不希望网站因其登录页面的内容而被找到。实际上,有许多网站将登录页面和其他应用程序页面排除在所有索引之外。
SEO方面,应将精力集中在促销和信息页面上。提供有价值的内容,解释自己或您的网站特色,并尽一切可能使这些页面得到正确的索引。在我看来,静态HTML页面是最佳选择。
此外,如果您翻译属于实际应用程序的页面名称,则会遇到大量麻烦。例如,在成功登录后,您的应用程序可能会将用户转移到他的个人仪表板,该仪表板可能基于另一个HTML模板/页面。如果您已将该页面名称翻译成不同的语言,则您的应用程序将必须确保将用户带到正确的版本。基本上,这意味着您需要与您想要支持的语言一样多的应用程序版本。当然,有些技巧可以使生活更轻松,但这将是一个持续的痛苦,并且绝对不值得努力。
总之:创建静态页面,显示您的USP(独特卖家位置),为用户提供有价值的内容(例如复杂的教程等)。翻译那些页面,包括名称和路径,并尽一切可能进行SEO。但是关于实际应用程序,优化其页面有点无意义甚至具有反作用。 第二个问题 我永远不会使用基于IP的重定向,原因如下:
首先,许多客户在非自己的国家。例如,您真的想将所有以英语为母语的人重定向到您的匈牙利页面,因为他们目前正在匈牙利出差吗?
其次,越来越多的用户今天使用VPN出于不同的原因,从而经常隐藏他们目前所在的国家。
第三,哪个IP地址属于哪个提供商或国家非常不稳定;您将不得不不断更新数据库以跟上时代。
还有更多的原因,但我想您已经明白了。
幸运的是,有一个解决方案可以解决您的问题(但请参见下面的“最终备注”):每个浏览器在从服务器获取页面时,都会告诉服务器首选和可接受的语言。例如,Apache 可以直接在 RewriteRule 语句中使用这些信息,并将用户重定向到正确的页面。
如果您无法更改服务器的配置,则可以在 CGI 程序中评估相应的标题。
在进行研究时,请查看 Accept-Language HTTP 1.1 标题。一个很好的起点可能在这里
你最后混淆了第三个问题中的两件不同的事情。区域设置不等于语言。一方面,您正在询问“...从中获取本地设置...”,而另一方面,您说“... lang=fr...”,从而给人留下您想获得该语言的印象。
如果您想获取语言:请参阅我对第二个问题的回答,或从当前路径解析语言(正如您已经建议的那样)。
如果您想获取本地设置,则情况会更加复杂。唯一合理的自动方法是从语言中派生区域设置,但这通常会失败。例如,我通常在进行研究时更喜欢使用英语,但另一方面,我位于德国,因此希望以我习惯的格式显示日期和时间,因此从我首选的语言中派生我的期望区域设置将失败。
不幸的是,没有 HTTP 标头可以告诉服务器用户偏爱哪个区域设置。作为起点,这篇文章可能会对您有所帮助。
请参见下一节(最终备注)以了解如何解决此问题。
正如上述链接的文章已经指出的那样:满足用户的唯一可靠方法是让他在应用程序内选择语言、区域设置和时区。您可以将用户的选择存储在 cookie 或后端数据库中;每种方法都有其优缺点。
在我的项目中,我通常混合使用所有方法(HTTP 标头、cookie、数据库)。

0

首先要考虑人类。URL翻译对法国用户来说重要吗?有些人可能认为在URL中获得翻译后的单词是可以接受的,但其他地区的用户可能会有不同的看法。搜索引擎会考虑用户行为因素。如果您的解决方案更方便用户,则SEO因素将更高。

如果用户能够获得预期的语言版本,那就太好了。网站可以通过IP、HTTP头、Cookie等方式建议用户选择语言版本。有些人可能更喜欢其他语言,有些人可能正在旅行。因此,让他们手动选择语言版本仍然很重要。

如有疑问,请阅读手册并分析竞争对手的网站。


0
通常我在大多数网站上看到的是像site.com/en和site.com/fr这样的URL,就像你所提到的那样,但如何向用户展示网站取决于你。我更喜欢将默认设置为site.com/en,并给用户选择语言的选项。
如果您仍然感到困惑,请参考下面的链接,它会很有用。 请点击此处查看引荐链接

0

你应该翻译路径吗?

如果可能的话,尽管翻译 - 这将帮助该语言的用户感觉像“一等公民”。登录路由可能不会对SEO产生太大影响,但在内容页面上翻译URL可能有助于使它们更易被发现。

您可以阅读Google关于多区域和多语言站点的建议,其中指出“翻译URL中的单词是可以的”。

基于IP地址进行重定向是否可行?

这可以帮助首次使用者,但需要注意以下几点:

  • 这个翻译准确吗?例如,如果我说英语但是去了法国并访问您的网站,我会得到法语。如果您的目标市场是移动设备携带者,那么这可能不是最佳选择。例如,查看 Accept-Language 是否更好?

  • 每次请求都对IP地址进行地理定位是否会给您的服务器带来性能问题?或者会向外部地理编码服务发出太多调用?请确保进行容量规划,并减少在已知区域设置(例如从 cookie 或用户明确说明其首选项)的调用。

  • 即使您猜测出首选区域设置,请始终允许显式用户首选项覆盖它。没有什么比在页面之间移动并且网站决定它更了解您理解的语言更令人沮丧的事情了 :-)

  • 只要您轻松地在站点之间切换,就不需要特定的着陆页。如果您不确定是否应该重定向用户(例如,amazon.com 将向英国用户显示横幅,为他们提供切换站点的选项 - 但不为他们做出决定),则弹出横幅不会有任何损失。

您应该如何构建您的 URL?

在URL中包含语言(作为子域或文件夹)可能是最有利于SEO的。别忘了更新您的站点地图,以指示爬虫存在不同语言的备用内容页面。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接