使用基于浏览器语言的htaccess从子域重定向到子域

时间:2013-05-12 19:48:51

标签: .htaccess mod-rewrite

我需要根据他们的语言在主页中重定向我的用户。 我想我要用 RewriteCond %{HTTP:Accept-Language} 但我无法弄清楚。 我的最后一次尝试:

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

1 个答案:

答案 0 :(得分:0)

您需要确保HOST尚未指向正确的位置:

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]