Redirect 无法在NGINX中使用301重定向

Redirect 无法在NGINX中使用301重定向,redirect,nginx,Redirect,Nginx,我有一个被翻译成18种语言的网站。有些语言是相同的(巴西人是葡萄牙人)。所以我想从br重定向到pt以避免奇怪的内容,从/some\u domain/br/…->/some\u domain/pt/… 我可以编写一个从一个域到另一个域的重定向。大概是这样的: location = /user/unique { return 301 http://www.usgreencardoffice.com/blog/the-american-dream; } 我希望实现以下目标: d

我有一个被翻译成18种语言的网站。有些语言是相同的(巴西人是葡萄牙人)。所以我想从br重定向到pt以避免奇怪的内容,从
/some\u domain/br/…
->
/some\u domain/pt/…

我可以编写一个从一个域到另一个域的重定向。大概是这样的:

location = /user/unique {
       return 301 http://www.usgreencardoffice.com/blog/the-american-dream;
    }
我希望实现以下目标:
domain.com/br/something
->
domain.com/pt/something


但是对于语言重定向,我不知道。如何实现这一点?

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

location ^~ /br/ {
    rewrite ^/br(.*)$ /pt$1 permanent;
}
^ ~
修饰符使该前缀位置优先于同一级别的正则表达式位置。如果将
permanent
更改为
last
,则重写将变为内部,因此用户不可见


有关详细信息,请参阅和。

这篇文章可能有助于解决您的问题。这篇文章是关于另一个问题的,可以通过直接从项目中选择正确的路线来解决。太好了!问题解决了!谢谢你提供的细节。