【问题标题】:Htaccess language redirect loopHtaccess 语言重定向循环
【发布时间】:2017-02-03 18:55:18
【问题描述】:

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

它有语言文件夹:

/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]

除了这个错误之外,这完全可以工作 有一个循环

如果语言浏览器不是英语而是西班牙语或法语等,他们无法单击英语标志将它们带到英语版本,这是没有子文件夹的主域,它只是将它们重定向回自己的语言

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

非常感谢

【问题讨论】:

    标签: .htaccess redirect


    【解决方案1】:

    是的,我建议在您的英文链接上设置?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 中检查。

    【讨论】:

    • 谢谢 会试一试,不确定我是否完全理解但会试一试!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多