在NGINX中无法使用301重定向

时间:2016-06-22 11:44:33

标签: redirect nginx

我有一个翻译成18种语言的网站。有些语言是相同的(巴西语是葡萄牙语)。所以我想从 br 重定向到 pt 以避免来自/some_domain/br/... - >的奇怪内容/some_domain/pt/...

我可以将单个重定向从一个域写入另一个域。像这样:

location = /user/unique {
       return 301 http://www.usgreencardoffice.com/blog/the-american-dream;
    }

我想实现以下目标: domain.com/br/something - > domain.com/pt/something

但是对于语言重定向,我不知道。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

如果语言代码位于URI的开头,则前缀位置将是一种有效的解决方案:

location ^~ /br/ {
    rewrite ^/br(.*)$ /pt$1 permanent;
}

^~修饰符使此前缀位置优先于同一级别的正则表达式位置。如果您将permanent更改为last,则重写将变为内部,因此对用户不可见。

有关详细信息,请参阅thisthis