Use redirecionamentos 302 durante o teste, os 301s são armazenados em cache. Limpe o cache do seu navegador e reinicie-o. Mude os 302's para 301 quando estiver satisfeito com a sua configuração.
Tente isto - eu dei alguns exemplos postados e você pode trabalhar o resto. Você deve ler o pedido de avaliação dentro do nginx , mas para correspondências exatas não é importante - só se aplica a correspondências de expressões regulares.
Note que isso deve fazer o que você pediu, o que pode não ser o que você quer - note que você não incluiu uma barra no seu exemplo.
Parece também que você quer redirecionar tudo para o domínio do aplicativo, é esse o caso? Se assim for, é muito mais fácil. Mas aqui está o que você pediu, testado.
location /support/ipad {
# change to 301 when you're 100% happy with all redirects
return 302 http://example.com/support/ipad;
}
location /app/iphone {
return 302 http://example.com/app/iphone;
}
location ~* ^/\Z {
return 302 http://whatever;
}
Pode haver uma maneira mais eficiente de fazer isso com expressões regulares, mas fazê-las individualmente pode ser prudente se você não estiver redirecionando todo o domínio. Note que ~ * significa o que segue é uma expressão regular, que é avaliada depois daquelas que especificam um único URI preciso.
Com base no que você disse, é necessário que o redirecionamento raiz tenha uma expressão regular para garantir que ele apenas redirecione o domínio raiz, não por exemplo link . Se você quer tudo redirecionado, é mais fácil.
Além disso, você quis dizer isso? Observe as barras à direita
GET http://example.com/ => http://apps.example.com/
^ significa "início do URI", que é o URL sem o site. Isso significa que ele corresponderá apenas à raiz do site, não a qualquer pasta. / Z significa "fim do URI". Você pode gerar informações de depuração nos cabeçalhos do navegador para ajudar com isso
location whatever {
add_header Z_LOCATION "(any text you want)";
add_header URI $uri;
}