Hello!

On Mon, Jun 17, 2019 at 10:03:10AM -0400, grey wrote:

> Добрый день.
> 
> 
> Сам конфиг, блокирующий картинки хотлинка с сайтов из "черного" списка:
> 
>       map $http_referer $bad_referer {
>               hostnames;
> 
>               default                         0;
> 
>               "~site.ru"              1;
>               "~test.ru"              1;
> }
> 
>       location ~* ^/secret-files/
>       {
>               internal;
> 
>               if ($bad_referer)
>               {
>                       rewrite ^ /images/direct-url.gif last;
>               }
> 
>               root   /inetpub/wwwroot/qwerty.ru;
>       }
> 
> 
> Пока запрашиваемая картинка на моем сервере существует, правило отрабатывает
> верно и пользователи видят заглушку direct-url.gif, но если изображение на
> моем сайте удалить, то они видят сообщение, которое отдает скрипт:
> 
> <?php
> ...
>       header ("X-Accel-Redirect: /image-not-found.gif");
> ?>
> 
> 
> Не понимаю, почему дело доходит до скрипта, если nginx видя хотлинк сразу
> должен отдать заглушку.

У вас в "location ~* ^/secret-files/" запрос попадает только после 
обработки скриптом, судя по всему.  И если скрипт не делает 
перенаправления в /secret-files/, то и проверки по $bad_referer не 
происходит.

-- 
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить