У меня есть следующая конфигурация для отключения хотлинкинга на nginX.
location / {
root /var/www/html;
index index.html index.htm;
}
location ~ \.(xml|jpg|jpeg)$ {
root /var/www/html;
valid_referers none blocked www.domain.com dev.domain.net;
if ($invalid_referer) {
return 444;
}
}
Я перезагружал nginX несколько раз, но все еще могу получить доступ к изображениям из facebook. У меня есть несколько папок в / var / www / html.
Я что-то упускаю?
Проверьте ссылку в журнале доступа:
IP - - [20/Feb/2011:20:11:51 +0000] "GET /GET HTTP/1.1" 200 3710 "REFER" "USER_AGENT"
valid_referers:
Не уверен, что вы знаете, но в nginx есть ошибка, и если этот код находится в отдельном файле (не nginx.conf, перезагрузка не приведет к изменениям во включенном файле; вам нужно будет остановить / запустить nginx.
Также немного изменилась логика, поскольку вы указали действительных рефереров, было бы лучше сказать
if (!$valid_referrer)