Preciso escrever uma regra de reescrita para o Nginx, para que, se um usuário tentar acessar um URL de imagem antigo:
/images/path/to/image.png
e o arquivo não existe, tente redirecionar para:
/website_images/path/to/image.png
SOMENTE se a imagem existir no novo URL, caso contrário, continue com o 404. A versão do Nginx em nosso host ainda não possui try_files.
Por favor, não use
if
dentro de um bloco de localização. Coisas ruins podem acontecer.$1
torna-se o nome do arquivo para tentar na diretiva try_files, criada para o que você está tentando realizar.Ou, apenas, reescreva-o sem verificar. Se essa imagem não estiver lá, você receberá um 404 de qualquer maneira.
fonte
try_files
yet"), para futuros visitantes que chegarem aqui, esta resposta merece mais votos.Você pode usar algo assim (não testado para o seu caso específico):
O que é basicamente uma maneira alternativa de escrever
if
instruções aninhadas , pois você não pode aninhar no Nginx. Veja aqui para referência oficial sobre este "hack".fonte