Necesito escribir una regla de reescritura para Nginx para que si un usuario intenta ir a una url de imagen anterior:
/images/path/to/image.png
y el archivo no existe, intente redirigir a:
/website_images/path/to/image.png
SOLO si la imagen existe en la nueva URL, de lo contrario, continúe con la 404. La versión de Nginx en nuestro host todavía no tiene archivos try_files.
No lo use
if
dentro de un bloque de ubicación. Pueden pasar cosas malas.$1
se convierte en el nombre de archivo para probar en la directiva try_files, que está hecha para lo que está tratando de lograr.Esto, O, simplemente reescríbalo sin verificar. Si esa imagen no está allí, obtendrás un 404 de todos modos.
fuente
try_files
todavía"), para los futuros visitantes que vienen aquí, esta respuesta merece más votos positivos.Podría usar algo como esto (no probado para su caso específico):
Que es básicamente una forma alternativa de escribir
if
declaraciones anidadas , ya que no puede anidar en Nginx. Ver aquí para referencia oficial sobre este "hack".fuente