使用htaccess重定向用户失败

时间:2016-01-28 17:27:01

标签: php apache .htaccess redirect server

我有一个WordPress网站,有两种语言:德语和英语。我的目标:如果浏览器语言是英语,我希望用户被重定向到英文版。我试图用htaccess解决这个问题,但是我收到了浏览器错误消息。

我的完整htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

#Redirect to English page if browser language is English
RewriteCond %{HTTP:Accept-Language} (en) [NC]
RewriteRule .* http://www.mywebsite.de/?lang=en [R,L]

当我想访问http://www.mywebsite.de时,语言设置为英语的Firefox会给我以下错误消息:

  

您输入的网站重定向请求,以便永远不会   完成。

(这是从德语到英语的翻译。)

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以使用RewriteCond来防止循环错误。

#Redirect to English page if browser language is English
RewriteCond %{HTTP:Accept-Language} (en) [NC]
#Skip the Rule and stop the redirection, If we are already on /?lang=en
RewriteCond %{QUERY_STRING} ^$
RewriteRule .* http://www.mywebsite.de/?lang=en [R,L]