Slash-Zn
@Slash-Zn

Как отследить прямое обращение к картинкам и выполнять php?

Как можно при помощи Nginx, в случае прямого обращения к картинкам, запускать php файл?
  • Вопрос задан
  • 604 просмотра
Решения вопроса 1
pickHabr
@pickHabr
fullstack разработчик
Если я правильно понял, то нужно, чтобы файлы отдавал nginx напрямую, а после этого нужно чтобы вызывался пхп код. Можно попробовать покопать в сторону post_action, эта директива позволяет выполнить дополнительные действия после того, как Nginx отдает ответ клиенту.

Например что-то типо такого:
server {
    //

    location ~* \.(jpg|jpeg|png|gif)$ {
        try_files $uri =404;
        post_action /post_handler.php;
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Так как вопрос хреново описан, народ накидал кучу абсолютно трешовых решений.
Вообще я тоже не уверен что нужно автору, но скорее всего подойдет стандартное решение, которое, в силу лени при описании задачи, в условия не вписывается.

Нжинкс настраивается на переадресацию всех урл с картинкой на единую точку входа для рутируемых приложений а-ля ларавел/зенд и прочие мвц, или на конкретный скрипт в случае наколеночных решений. Далее, по данному адресу отрабатывает скрипт, проверяя все что можно: реферер, сессию, аксепт и тд, после чего выполняете нужный скрипт, а картинка отдается через readfile() с соответствующими заголовками. Или, как предложил Михаил Ливач, настраиваете внутренний редирект в нжинксе и делаете X-Accel-Redirect.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы