【问题标题】:Website .htaccess language redirection only at the beginning of the session网站 .htaccess 语言重定向仅在会话开始时
【发布时间】:2017-09-18 16:51:57
【问题描述】:

我在我网站的 .htaccess 中使用此代码基于浏览器语言进行重定向:

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

它会根据浏览器语言进行工作和重定向,但它始终强制您永远不要更改为另一种语言:如果您尝试手动选择另一种语言,该网站会尝试加载但会立即返回到匹配的语言您的浏览器配置。

我希望访问者能够随时选择语言,那么,有什么方法可以使该代码仅在会话开始时重定向?

【问题讨论】:

    标签: wordpress apache .htaccess redirect


    【解决方案1】:

    更新:清除浏览器缓存并测试以下内容:

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

    【讨论】:

    • 是的,我做到了。但它没有用。它总是强制重定向。
    • 我认为你也应该为每一种语言制定规则
    • 该网站有两种语言:英语和西班牙语,但我不知道如何为它们制定这些规则......现在它会检查 url,如果它不包含"lang=es" 然后重定向到西班牙语;如果我为英语创建相同的规则,那么它一开始就永远不会重定向到西班牙语。对不起,我缺乏专业知识。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 2012-11-14
    • 2016-05-17
    • 2020-08-18
    相关资源
    最近更新 更多