#nginx
#nginx
Вопрос:
Так же, как и в названии, я хочу запретить доступ для всех расширений файлов, кроме этих 8. У меня есть что-то вроде этого, но оно не работает должным образом.
location ~* /uploads/ql/icons/.*.(?!(bmp|gif|tiff|jpeg|jpg|ppm|png|ico))$ {
deny all;
}
Ответ №1:
Ваше регулярное выражение не будет работать так, как вы ожидали. Попробуйте это:
location ~* /uploads/ql/icons/.*.(?!bmp$|gif$|tiff$|jpeg$|jpg$|ppm$|png$|ico$) {
deny all;
}
Однако это не будет блокировать доступ к файлам без какого-либо расширения вообще. Чтобы заблокировать и эти файлы, вам понадобится более сложное регулярное выражение:
location ~* /uploads/ql/icons/(?:[^.] $|.*.(?!bmp$|gif$|tiff$|jpeg$|jpg$|ppm$|png$|ico$)) {
deny all;
}
Существует также другой способ добавления второго location
блока, см. Этот комментарий .
Комментарии:
1. Это тоже работает не так, как ожидалось, я все еще могу извлекать ресурсы со всеми расширениями файлов.
2. Извините, я пропустил
~*
модификатор. Исправлен ответ. Вы пробовали эти регулярные выражения с ним или без него?