Могу ли я вернуть 404 в nginx, если URL-адрес содержит расширение файла?

#nginx #nginx-config #nginx-location

#nginx #nginx-config #nginx-расположение

Вопрос:

Я новичок в nginx, и мне нужно изменить файл конфигурации nginx приложения, чтобы всегда возвращать 404, если URL-адрес содержит расширение файла. Мой файл nginx.conf выглядит следующим образом:

 worker_processes  1;

events {
    worker_connections  1024;
}

http {
    server {
        listen 80;
        server_name  localhost;

        root   /usr/share/nginx/html;
        index  index.html index.htm;
        include /etc/nginx/mime.types;

        gzip on;
        gzip_min_length 1000;
        gzip_proxied expired no-cache no-store private auth;
        gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml rss text/javascript;

        location / {
            try_files $uri $uri/ /index.html;
            expires 5m;
        }

        location /appsettings.json {
            expires 5m;
        }

        location /version.json {
            expires 5m;
        }
    }
}
 

Приветствуются любые советы 🙂

Ответ №1:

Замените ext расширением, которое вы хотите запретить:

 location ~ .ext$ {
  return 404;
}
 

Если вы хотите запретить все расширения (все, что на самом деле с точкой):

 location ~ . {
  return 404;
}