2015-06-22 131 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。