Nginx - запретить доступ к файлу по user-agent

S
На сайте с 16.08.2007
Offline
93
585

Может кто знает как запретить к файлу по user-agent? Чтобы для определенных юзеров отдавалось 404, а остальные могли нормально скачивать.

Likvik
На сайте с 29.07.2010
Offline
132
#1

Юзерагенты прописываете на свой вкус.

# Blocking by User Agent (блокировка по юзер-агенту)

if ($http_user_agent ~ (ZmEu|libwww-perl|SurdotlyBot|wget|AppEngine-Google|MJ12|majestic12|MJ12bot) ) {
return 404;
}
Незнание порождает уверенность.
D
На сайте с 28.06.2008
Offline
1101
#2

Likvik, так заблокирует ко всему сайту, а ТС просит к файлу.

Нужно сделать отдельный локейш под директорию где файлы лежат и уже в него вставить эту конструкцию.

Likvik
На сайте с 29.07.2010
Offline
132
#3

Dram, да, правильно говорите. Недосмотрел.

---------- Добавлено 23.12.2019 в 19:28 ----------

Тогда так, поправьте если ошибаюсь


location = /ФАЙЛ.ХХХ {
try_files $uri /index.php?q=ФАЙЛ.ХХХ;
if ($http_user_agent !~* (ЮЗЕРАГЕНТ)) {
return 404;
}
}
S
На сайте с 16.08.2007
Offline
93
#4

Благодарю! Буду пробовать. Как верно сказали, первый вариант нагугливал, а именно для файла не мог найти

Likvik
На сайте с 29.07.2010
Offline
132
#5

У меня именно так работает, но только немного наоборот. Там где юзерагент, им отдается этот файл, всем остальным 404.

Получается мое решение не совсем вам подойдет. Но я делюсь тем что знаю. Извиняйте.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий