Tenho certeza de que isso já foi solicitado antes, mas não consigo encontrar uma solução que funcione.
Um site mudou os serviços do CMS, mas tem o mesmo domínio. Como faço para configurar uma reescrita do nginx para uma única página?
Por exemplo
Página antiga
http://sitedomain.co.uk/content/unique-page-name
Nova página
http://sitedomain.co.uk/new-name/unique-page-name
Observe que não quero que tudo na página de conteúdo seja redirecionado, mas literalmente apenas o URL mencionado acima. Eu tenho cerca de 9 redirecionamentos para configurar, dos quais não cabem em um padrão.
Obrigado!
Edit: Encontrei esta solução, que parece estar funcionando, exceto pelo fato de que ela redireciona sem uma barra:
if ( $request_filename ~ content/unique-page-name/ ) {
rewrite ^ http://sitedomain.co.uk/new-name/unique-page-name/? permanent;
}
Mas isso redireciona para:
http://sitedomain.co.uknew-name/unique-page-name/
if
instruções no nginx é ruim? Isso ainda seria uma prática melhor do que usar o método de reescrita?if
junto com a diretiva de retorno é perfeitamente adequado. Veja wiki.nginx.org/IfIsEvil . Sim, IMO, é melhor do que reescrever.Idealmente, você não deve usar instruções if se puder evitá-las. Algo assim poderia funcionar (não testado).
fonte
Eu usei a seguinte solução:
Funciona um prazer.
fonte
Para mim, funcionou sem o sinal de igual assim:
fonte
rewrite
. Veja a resposta de @ SteveEdison.