location ~* \.(?:avi|bin|bmp| ... |(?<!\.pptx\.|\.ppt\.)swf)$ {
root /var/www/html1;
access_log off;
expires 1d;
}
.
$ man pcrepattern
$ man pcresyntax
Estou exibindo um site estático por meio do 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;
}
E meu objetivo é excluir solicitações como http://connect1.webinar.ru/converter/task/
. A visualização completa é como http://mydomain.tld/converter/task/setComplete/fid/34330/fn/7c2cfed32ec2eef6788e728fa46f7a80.ppt.swf
. Apesar do fato dessas URLs terminarem em tal formato, elas não são estáticas, mas solicitações de script falsas, então eu tenho um problema com elas.
Qual é a melhor maneira de fazer isso? Como posso adicionar uma exclusão para este URL ou talvez eu possa excluir a extensão específica do arquivo (.ppt.swf, pptx.swf) da lista desse local do Nginx?
Obrigado.
Como você está usando expressões regulares em seu local para arquivos estáticos, basta adicionar !pptx?\.swf
condition a ele e excluir a condição swf
Sua localização ficará assim:
location ~* \.(avi|bin|bmp| ... |!pptx?\.swf)$ { root /var/www/html1; access_log off; expires 1d; }
E não se esqueça de adicionar local separado para *.swf
arquivos:
location ~* [0-9a-z]*\.swf$ root /var/www/html1; access_log off; expires 1d; }
Tags nginx static-content exclude