.htaccess - 多语言网站的Htaccess和网址

标签 .htaccess url seo multilingual

我已经准备好为我的多语言网站使用子目录格式。
我的第一个问题是:
对于搜索引擎优化,我必须翻译的网页名称在网址或它是无用的?
例子:

- 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/ensite.com/fr吗?或者让我设置一个默认的本地,并让我的url像site.com/pagesite.com/fr/page
最后,从用户当前的url获取本地的最佳方法是什么?
解析url以获取/fr或/en,或在lang=fr的url中添加get参数(用htaccess隐藏)
谢谢)

最佳答案

作为先决条件,我假设您没有使用框架/库。此外,我从来没有解决过类似的问题,只使用.htaccess(作为您问题请求的标题),因此不知道是否有可能这样做。不过,以下指导原则可能会对您有所帮助。
你的第一个问题
一般来说,网页的文件名和路径会影响其排名。此外,使用本地语言的页面名称和路径可能有助于用户记住最重要的url,即使不给它们加书签。
尽管如此,我从不为属于web应用程序一部分的页面翻译页面名称或目录(而不是信息页面或促销页面)。
你提到的登录页面就是一个很好的例子。我几乎可以肯定,你不希望你的网站被发现,因为它的内容在其登录页面。实际上,有很多网站根本不包括登录页面和其他应用程序页面。
相反,在搜索引擎优化方面,把你的努力放在你的宣传和信息页面上。提供有价值的内容,解释你或你的网站有什么特别之处,并尽一切可能让这些页面得到正确的索引。imho,静态html页面是这样做的最佳选择。
此外,如果您翻译属于您的实际应用程序的页面名称,您将遇到巨大的麻烦。例如,成功登录后,应用程序可能会将用户转移到其个人仪表板,该仪表板可能基于另一个HTML模板/页面。如果您已经将该页面名称翻译成不同的语言,那么您的应用程序将必须注意让用户使用正确的版本。基本上,这意味着您需要尽可能多的应用程序版本作为您想要支持的语言。当然,也有办法让生活更轻松,但这将是一个持续的痛苦,绝对不值得努力。
总结一下:创建静态页面,显示您的usp(独特的卖家位置),并向用户提供有价值的内容(例如复杂的教程等)。翻译这些页面,包括名称和路径,并以各种方式搜索引擎优化他们。但是对于实际的应用程序来说,优化它的页面是毫无意义的,甚至会适得其反。
你的第二个问题
我永远不会使用基于IP的重定向有几个原因。
首先,在非本国的国家有许多客户。例如,是否确实要将所有以英语为母语的人重定向到您的匈牙利页面,因为他们目前正在匈牙利出差?
第二,现在越来越多的用户出于不同的原因使用vpn,因此经常隐藏他们目前所在的国家。
第三,哪个IP地址属于哪个提供商或国家是高度不稳定的;你必须不断更新你的数据库才能跟上。
有更多的原因,但我认为你已经有了这个想法。
幸运的是,您的问题有一个解决方案(请参阅下面的“最后一句话”):每个浏览器在从服务器获取页面时,都会告诉服务器首选和接受的语言。例如,apache可以直接在RewriteRule语句中使用该信息,并将用户重定向到正确的页面。
如果您不能改变服务器的配置,那么您可以在您的cgi程序中计算相应的头。
在进行研究时,请查找Accept-Languagehtp1.1头。一个好的起点可能是here
你的第三个问题
你最终在第三个问题上混淆了两件事。语言环境与语言不同。一方面,你要求“…从…”获取本地信息,另一方面,你说“…lang=fr…”,这样就给人留下了想要获取语言的印象。
如果你想得到语言:看我对你第二个问题的回答,或者从当前路径解析语言(正如你已经建议的那样)。
如果你想得到现场,事情会更复杂。唯一合理的自动方法是从语言派生语言环境,但这通常会失败。例如,在做研究时,我通常更喜欢英语,但另一方面,我位于德国,因此希望日期和时间采用我习惯的格式,因此从我的首选语言派生出我所需的语言环境将失败。
不幸的是,没有http头可以告诉服务器用户喜欢哪个语言环境。作为起点,this article可能会对您有所帮助。
关于如何解决这个问题,请参阅最后的评论(下一节)。
最后评论
正如上面链接的文章已经指出的那样:让用户满意的唯一可靠方法是让他在应用程序中选择他的语言、语言环境和时区。您可以将用户的选择存储在cookies或后端数据库中;每个选项都有自己的优缺点。
我通常在我的项目中使用所有方法(http头、cookies、数据库)的组合。

关于.htaccess - 多语言网站的Htaccess和网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42899101/

相关文章:

apache - 对某些页面强制使用 https,对所有其他页面强制使用 http

regex - RewriteCond 文件存在

apache - nginx 中级联index.php "try_files"

javascript - URL 哈希异常

xcode - .htaccess 语法代码需要修改

.htaccess - 如何判断文件夹已被永久删除

c# - 如何使用模型刷新 View

python - 维基百科是否允许通过 Google App Engine 获取 URL?

javascript - 一个模板 - 许多页面 : can I use a dynamic sitemap?

seo - 301 重定向后如何处理随机页面?