【问题标题】:Wordpress browser language redirections - too many redirects errorWordpress 浏览器语言重定向 - 重定向错误过多
【发布时间】:2018-02-10 18:14:25
【问题描述】:

我正在尝试根据浏览器语言在我的 Wordpress 网站中实现重定向,方法是在 .htaccess 中添加此代码

RewriteEngine On
RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule ^$ https://www.example.com/ambienteTrabajo/?lang=es [L,R=301]

?lang=es 是 WPML 插件标记我翻译的页面的方式,但是我没有使用内置的 WPML 重定向,因为它给我带来了令人不快的延迟:页面首先以英文加载,然后几秒钟后重定向到西班牙语。

使用我在 url 重定向完成之前添加的代码,但页面未显示;它显示了一个空白页面,其中包含 TOO MANY REDIRECTS 消息

我应该如何设置这个重定向规则?我尝试了很多东西都没有成功。

【问题讨论】:

    标签: wordpress .htaccess redirect mod-rewrite


    【解决方案1】:

    它可能会进入一个无限循环,因为每次加载页面时它都会检测到语言是 es 并进行重定向...这将读取 .htaccess,再次检查语言,检测到它的 @987654322 @ 并再次进行重定向等。

    您的重定向规则需要执行以下操作

    • 如果浏览器语言是es
    • 并且查询字符串尚不包含lang=es
    • 然后才进行重定向

    我不是重写规则方面的专家,但请尝试以下方法:

    RewriteEngine On
    RewriteCond %{HTTP:Accept-Language} ^es [NC]
    RewriteCond %{QUERY_STRING} !(^|&)lang=es [NC]
    RewriteRule ^$ https://www.example.com/ambienteTrabajo/?lang=es [L,R=302]
    

    注意:

    删除现有的 301 重定向后,您需要清除浏览器缓存。

    我已将其更改为 302 重定向 - 您应始终先使用临时 302 重定向测试您的规则,以确保其正常工作通过 301 重定向使其永久化,以防万一出错了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-11
      • 2018-07-06
      • 1970-01-01
      • 2015-02-19
      • 2011-01-21
      • 2016-07-09
      相关资源
      最近更新 更多