запрет докачки в зависимости от URI

AterCattus nginx-forum на nginx.us
Ср Май 19 19:08:13 MSD 2010


Доброго времени суток.

Не удается решить проблему настройки сервера на запрет докачки статических файлов в том случае, когда в URI не содержится $remote_addr.

Важно именно наличие $remote_addr в URI (проверка регуляркой) и фактом того, то данный запрос является докачкой (есть заголовок Range со стартовым байтом большим нуля). Если не докачка, то наличие $remote_addr роли не играет.

Логика примерно следующая (не работает само собой):

[code]
location ~ /foobar/ {
   if ($http_accept_ranges) { [i]# запрос с докачкой[/i]
      rewrite '^(/foobar/.+/){$remote_addr}/(.+)$' $1$2 break; [i]# если есть нужный IP - редирект на файл. кроме прочего проблема, что $ в имени переменной идет как конец регулярки [/i]
      return 403; [i]# запрет докачки из-за несовпадающего IP[/i]
   }
   rewrite '^(/foobar/.+/)[^/]+/(.+)$' $1$2 break; [i]# качается от начала, какой там IP - не важно[/i]
}
[/code]

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,88166,88166#msg-88166




Подробная информация о списке рассылки nginx-ru