Re: Хотлинк работает как-то не так
Maxim Dounin
mdounin на mdounin.ru
Пн Июн 17 14:14:20 UTC 2019
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