2013-05-12 85 views
0

我需要根據他們的語言在主頁上重定向我的用戶。 我想我必須使用 RewriteCond %{HTTP:Accept-Language} 但我無法弄清楚。 我最後一次嘗試:基於瀏覽器語言的htaccess基於和重定向到子域

 
RewriteEngine on 
RewriteCond %{HTTP:Accept-Language} ^es [NC] 
RewriteRule .* http://mydomain.com [R,L] 


RewriteEngine on 
RewriteCond %{HTTP:Accept-Language} ^en [NC] 
RewriteRule .* http://en.mydomain.com [R,L] 

RewriteEngine on 
RewriteCond %{HTTP:Accept-Language} ^fr [NC] 
RewriteRule .* http://fr.mydomain.com [R,L] 

但是,這產生一個無限循環。

文件夾結構

  • 的htdocs/index.php的 - > mydomain.com
  • 的htdocs/EN/index.php的 - > en.mydomain.com
  • 的htdocs/FR/index.php的 - > fr.mydomain.com

回答

0

你需要確保主機是不是已經指向正確的地方:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^mydomain.com$ [NC] 
RewriteCond %{HTTP:Accept-Language} ^es [NC] 
RewriteRule .* http://mydomain.com [R,L] 

RewriteCond %{HTTP_HOST} !^en.mydomain.com$ [NC] 
RewriteCond %{HTTP:Accept-Language} ^en [NC] 
RewriteRule .* http://en.mydomain.com [R,L] 

RewriteCond %{HTTP_HOST} !^fr.mydomain.com$ [NC] 
RewriteCond %{HTTP:Accept-Language} ^fr [NC] 
RewriteRule .* http://fr.mydomain.com [R,L] 
+0

一切都很好用ES語言,但它與英語語言循環... – 2013-05-12 20:50:45

+1

規則看起來一致,所以他們應該都工作相同。嘗試清除瀏覽器緩存/歷史記錄,或嘗試使用其他瀏覽器進行測試。當我使用Chrome時,我注意到它會緩存原始嘗試,而不是使用新的重定向規則。 – goodeye 2013-05-12 23:29:55