как настроить nginx и разрешить только определенные файлы
Как в location прописать, что бы можно было только php, html, js, css, jpg, jpeg, gif, png, ico, а все остальное запретить под 404? Даже файлы без расширения. Писал точечный запрет на некоторые файлы по расширению, но хотелось бы просто разрешить нужное, а остальное запретить.
Ответы (1 шт):
Автор решения: nörbörnën
→ Ссылка
server {
server_name media.site.ru;
listen 80;
location / {
root /var/www/storage/f2;
deny all; # deny by default
location ~ "\.(php|html|js|css|jpg|jpeg|gif|png|ico)$" {
allow all;
}
}
}
В директиву server_name запишите имя вашего сайта.
В директиву root запишите абсолютный путь к директории с файлами (без закрывающего слеша).
$ curl --head http://media.site.ru/q.jpg
HTTP/1.1 200 OK
Server: nginx/1.19.0
$ curl --head http://media.site.ru/priglos.zip
HTTP/1.1 403 Forbidden
Server: nginx/1.19.0