Htaccess语言重定向循环

时间:2017-02-03 18:55:19

标签: .htaccess redirect

请帮助,我有一个以英语为主要语言的网站

它有语言文件夹:

/de
/es
/it
/fr

没有英文文件夹,因为我将英文作为主域名,因此英文文件位于公共HTML文件夹中

我有htaccess

RewriteCond %{REQUEST_URI}          ^/$
RewriteCond %{HTTP:Accept-Language} ^(it|fr|de|es) [NC]
RewriteRule ^$ http://%{HTTP_HOST}/%1/ [L,R=301]

除了这个bug之外,这完全有效 有一个循环

如果语言浏览器不是英语,而是西班牙语或法语等,则无法点击英文标记将其带到英文版本,这是主域名,没有子文件夹,只需重定向将其循环回自己的语言

有没有简单的方法来解决这个问题而不创建/ en?

非常感谢

1 个答案:

答案 0 :(得分:0)

是的,我的建议是在您的英语链接上设置?lang=en并将规则更改为:

RewriteCond %{QUERY_STRING} !=lang=en
RewriteCond %{HTTP:Accept-Language} ^(it|fr|de|es) [NC]
RewriteRule ^$ http://%{HTTP_HOST}/%1/ [L,R]

并且还将重定向更改为临时(我在上面做过),或重定向将在其浏览器中缓存。

我删除了request_uri支票,因为它已在您的RewriteRule中检查过。