使用.htaccess进行语言重定向

时间:2015-06-22 07:58:58

标签: .htaccess

我有两个版本的同一页面:

  • example.com
  • example.com/fr - >法文版

我希望访问mydomain.com的法国人能够根据标题Accept-language重定向到mydomain.com/fr。为此,我把它写进了我的.htaccess:

RewriteCond %{HTTP:Accept-Language} ^fr [NC]
RewriteRule ^$ http://example.com/fr/ [L,R=301]

到目前为止,我的工作非常完美。

但是在我的网站上有法语/英语版本的链接...当一个法语版本的法国用户点击英文链接时,他回到法语版本......我怎么能避免这个? 我如何区分他实际上想要使用英文版?

2 个答案:

答案 0 :(得分:2)

建议可能是包含指向页面顶部的链接 - 例如,每个链接指向不同的页面; FR - mydomain.com/fr,ENG-mydomain.com/eng

根据网站的背景情况 - 我会将网站的法语版或英文版设为默认版本。

答案 1 :(得分:2)

您可以将查询字符串上的参数添加到内部语言链接,以防止在用户单击指向特定语言的链接时发生正常的语言重定向。

然后在你的.htaccess中添加一个额外的RewriteCond来检查用户是否点击了内部链接:

 RewriteCond %{QUERY_STRING} !(nolangredirect=1)

因此,如果法国用户点击www.example.com/en/index.html?nolangredirect=1,他们就不会被重定向到法语版本。

如果您希望他们下次回到网站时看到英文版,您需要使用cookies。