Nginx: разрешить доступ только рефереру, который соответствует имени местоположения
Есть ли способ, в nginx, разрешить доступ к «местоположению» только клиентам с реферером, который совпадает с именем текущего местоположения?
Это сценарий:
и т. д.
Я хочу, чтобы содержимое локации bar.org было доступно только в том случае, если реферером является bar.org. То же самое касается zeta.net
Я знаю, что могу делать это «статически», но таких локаций много, и мне нужно найти способ сделать это, определяя только одно «динамическое» местоположение.
Извините за мой плохой английский.
РЕШЕНИЕ
Я решил так:
location ~/([a-zA-Z0-9\.\-]*)/* {
set $match "$1::$http_referer";
if ($match !~* ^(.+)::http[s]*://[www]*[.]*\1.*$ ) {
return 403;
}
}