NginX 重定向

Jam*_*ler 1 nginx redirect 301-redirect

作为 NginX 重定向的新手,而不是我的正则表达式的忍者,有人可以提供一些关于如何以理智的方式进行以下 301 重定向的要点。

(为糟糕的示例名称道歉)

website.com/what -> website.com/en/what 
website.com/team -> website.com/en/team
website.com/stuff -> website.com/en/newstuff
website.com/stuff/this -> website.com/en/newstuff/foo/bar
website.com/stuff/that -> website.com/en/newstuff/thing/page
Run Code Online (Sandbox Code Playgroud)

虽然我希望有人给我确切的答案 - 我会满足于一些好的指示或示例,大致说明我需要做什么或我应该采取的方向。

如果它有助于我在 Ubuntu 11 上运行 nginx 0.8x 并且站点本身是用 CodeIgniter 编写的,

Mar*_*ald 5

最干净的方法是使用地图块。

map $uri $new {    
  /aa                   /en/aa;
  /bb                   /newstuff/bb;
  ^/cc/(?P<suffix>.*)$  /$suffix;
  /john                 /users/john/;
}

server {
  server_name   www.example.com;
  rewrite  ^    $new   permanent;
}
Run Code Online (Sandbox Code Playgroud)