2015-06-22 103 views
0

我有同样的页面的两个版本:语言重定向

  • 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] 

我的作品完美到目前为止。

但是在我的网站中有法文/英文版本的链接......当法文版的法文用户点击英文链接时,他会回到法文版本......我该如何避免这个? 我怎么能区分他真的想要去英文版?

+0

您不应该为此使用.htaccess,或者您需要在单击新语言后为每个新请求设置不同的标头。我想使用cookie来存储lang,并在应用程序中执行重定向,而不是.htaccess –

回答

2

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

根据网站上下文的不同,我会设置网站的法语版本或英文版本为默认版本。

2

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

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

RewriteCond %{QUERY_STRING} !(nolangredirect=1) 

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

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