NginX redireciona

1

Sendo um pouco novato em redirecionamentos NginX e não particularmente ninja com meu regex, alguém poderia fornecer alguns pontos sobre como fazer os seguintes redirecionamentos 301 de uma maneira sã.

(desculpas por nomes de exemplos horríveis)

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

Enquanto eu amaria alguém para me dar a resposta exata - eu vou me contentar com algumas boas indicações ou exemplos de aproximadamente o que eu preciso fazer ou o tipo de direção que eu deveria tomar.

Se isso ajudar, estou executando o nginx 0.8x no Ubuntu 11 e o próprio site está escrito no CodeIgniter,

    
por James Butler 06.09.2011 / 11:57

2 respostas

5

A maneira mais limpa é usar um bloco de mapa.

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;
}
    
por 06.09.2011 / 14:56
0

Esta deve ser a ideia básica:

server {
  listen 80;
  server_name website.com;
  root /var/www/website/current/public;

  location /what {
    rewrite /en/what/ redirect;
  }

  location /team {
    rewrite /en/team/ redirect;
  }
}
    
por 06.09.2011 / 13:49