【问题标题】:Can not use 301 redirect in NGINX不能在 NGINX 中使用 301 重定向
【发布时间】:2016-10-24 08:09:01
【问题描述】:

我有一个被翻译成 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

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

【问题讨论】:

  • This 的帖子可能有助于解决您的问题
  • 这篇文章是关于另一个问题,可以直接从项目中通过右路由来解决。

标签: redirect nginx


【解决方案1】:

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

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

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

详情请参阅thisthis

【讨论】:

  • 太棒了!问题已经解决了!感谢您提供详细信息。
猜你喜欢
  • 1970-01-01
  • 2020-10-29
  • 2018-08-14
  • 2015-08-11
  • 1970-01-01
  • 2012-10-20
  • 2017-10-04
  • 1970-01-01
相关资源
最近更新 更多