我正在尝试在我的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消息。
我应该如何设置此重定向规则?我尝试过很多事情但没有取得任何成功。
答案 0 :(得分:0)
它可能会进入一个无限循环,因为每次页面加载它都会检测到语言es
并执行重定向...这将读取.htaccess,再次检查语言,检测到它的es
再次重定向等等。
您的重定向规则需要执行以下操作
es
lang=es
我不是Rewrite规则的专家,但请尝试以下内容:
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重定向,仅在如果出现问题!