Nginx разрешить определенные типы файлов

M
На сайте с 22.02.2007
Offline
161
989

Нужно определить допустимые типы файлов в определённых директориях.

Использую следующие правила:


location ~* ^/img/avatars/.*\.jpg$ {
root /path/site.com/;
}
location ~* ^/img/avatars/.*$ {
deny all;
}

Можно ли эти два правила как-то объединить в одно?

Торрент Трекер Катушка - скачать фильмы (http://katushka.net) | SmartProgress - достижение целей (https://smartprogress.do/) Партнерская программа SmartProgress (https://smartprogress.do/affiliate)
C
На сайте с 11.01.2010
Offline
45
#1

Уберите ~* и .*$ для второго location, не нужны они там.

M
На сайте с 22.02.2007
Offline
161
#2
Caviar:
Уберите ~* и .*$ для второго location, не нужны они там.

но ведь ~* указывает о наличии регулярного выражения.

... одним правилом задать whitelist файлов не получится?

C
На сайте с 11.01.2010
Offline
45
#3

Какое регулярное выражение Вы видите во втором случае?

M
На сайте с 22.02.2007
Offline
161
#4
Caviar:
Какое регулярное выражение Вы видите во втором случае?

со вторым согласен. Но для первого нужно ведь.

C
На сайте с 11.01.2010
Offline
45
#5

Для первого убирать ~* не нужно.

Почитайте http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#location , там написано в каком порядке будут обработаны локейшены.

M
На сайте с 22.02.2007
Offline
161
#6
Caviar:
Для первого убирать ~* не нужно.
Почитайте http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#location , там написано в каком порядке будут обработаны локейшены.

Читал естественно.

У меня вопрос в другом совершенно!

Можно ли объединить 2 правила в одно? Т.е. поставить запрет на location если имя файла отличное от ".*\.jpg$" ?

C
На сайте с 11.01.2010
Offline
45
#7

Можно через if сделать(но так делать сам Сысоев не рекомендует) , можно через вложенный location. Но почему Вас не устраивает самый простой вариант.

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