Мне нужно написать правило перезаписи для Nginx, чтобы, если пользователь пытается перейти к старому URL-адресу изображения:
/images/path/to/image.png
и файл не существует, попробуйте перенаправить на:
/website_images/path/to/image.png
ТОЛЬКО если изображение существует в новом URL, в противном случае перейдите к 404. В версии Nginx на нашем хосте еще нет try_files.
Пожалуйста, не используйте
if
внутри блока местоположения. Могут случиться плохие вещи.$1
становится именем файла для попытки в директиве try_files, которая предназначена для того, что вы пытаетесь выполнить.Это, или просто переписать без проверки. Если этого изображения нет, вы все равно получите 404.
источник
try_files
пока нет] »), для будущих посетителей, пришедших сюда, этот ответ заслуживает большего количества положительных голосов.Вы можете использовать что-то вроде этого (не проверено для вашего конкретного случая):
Это в основном альтернативный способ написания вложенных
if
операторов, поскольку вы не можете вкладывать их в Nginx. Смотрите здесь для официальной ссылки на этот "взломать".источник