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