Статические файлы Nginx исключают одно или несколько расширений файлов

Я обслуживаю статический сайт через nginx.

    location ~* \.(avi|bin|bmp|dmg|doc|docx|dpkg|exe|flv|gif|htm|html|ico|ics|img|jpeg|jpg|m2a|m2v|mov|mp3|mp4|mpeg|mpg|msi|pdf|pkg|png|ppt|pptx|ps|rar|rss|rtf|swf|tif|tiff|txt|wmv|xhtml|xls|xml|zip)$ {
        root /var/www/html1;
        access_log off;
        expires 1d;
    }

И моя цель состоит в том, чтобы исключить такие запросы, как http://connect1.webinar.ru/converter/task/, Полный вид как http://mydomain.tld/converter/task/setComplete/fid/34330/fn/7c2cfed32ec2eef6788e728fa46f7a80.ppt.swf, Несмотря на то, что эти URL-адреса заканчиваются в таком формате, они не статичны, а являются поддельными запросами сценариев, поэтому у меня с ними проблемы.

Каков наилучший способ сделать это? Как я могу добавить исключение для этого URL или, возможно, я могу исключить конкретное расширение файла (.ppt.swf, pptx.swf) из списка этого местоположения Nginx?

Благодарю.

2 ответа

Решение
location ~* \.(?:avi|bin|bmp| ... |(?<!\.pptx\.|\.ppt\.)swf)$ {
    root /var/www/html1;
    access_log off;
    expires 1d;
}

,

$ man pcrepattern
$ man pcresyntax

Вы можете исключить определенный файл или папку с помощью этого кода в своей конфигурации NGINX.

Если вы хотите исключить конкретный файл, добавьте этот код

location / {
    rewrite ^/((?!manifest.json|pwabuildersw.js).*)$ /index.php?slug=$1 last;
}

Если вы хотите игнорировать конкретную папку, добавьте это

location /assets {
  # Nothing here
}

Ссылка:- Игнорировать или исключать определенные файлы или целую папку в NGINX

Поскольку вы используете регулярное выражение в вашем местоположении для статических файлов, вы можете просто добавить !pptx?\.swf условие к нему и исключить условие swf

Ваше местоположение будет выглядеть так:

location ~ * \. (avi | bin | bmp |... |! pptx? \. swf) $ {
        root / var / www / html1;
        access_log off;
        истекает 1d;
}

И не забудьте добавить отдельное место для *.swf файлы:

местоположение ~* [0-9a-z]*\.swf$
        root /var/www/html1;
        access_log off;
        истекает 1d;
}
Другие вопросы по тегам