При переходе на картинку, вне страницы, например: site/img/imgName.jpg, необходимо выполнить код PHP, чтобы проверить наличие фотографии в базе, и при ее наличии, перенаправить пользователя на страницу запрашиваемой фотографии.
Так вот, как можно проверить, что обращаются именно к картинки, а не к странице. И при обращении к картинки запустить код PHP, что находится в файле, в отдельной папке?
Написать локейшен с регулярным выражением, срабатывающим только на урлы вида *.(jpg|png|что-там-ещё-у-вас). Внутрь локейшена засунуть try_files, который в какой-то момент будет дёргать PHP-скрипт.
За это должно отвечать ЧПУ движка а не try_files
думаю это самое адекватное поведение, генерацию урлов должен делать движок а не NGINX
Как крайний вариант трай файл не должен находить их а следовательно 404
и уже 404.php в котором движок подключен разумеется, разруливает этот урл (только естественно до отдачи кода 404!!!)
Добавьте соответствующее исклюение в .htaccess
чтоб эти урл уходили на движок