Nginx conf从位置〜* \。(?:js)$中排除目录

时间:2015-04-02 15:34:52

标签: nginx

如何在以下位置块中排除名为dynamic的目录的所有URL:

location ~* \.(?:js)$ {
  expires 1y;
  access_log off;
  add_header Cache-Control "public";
}

这里是整个配置,其中大部分来自herokus php nginx buildpack http://pastebin.com/xQ4BDtwr (stackex不会让我发布"主要是代码")

1 个答案:

答案 0 :(得分:0)

我会添加以下位置:

location /path/to/dynamic/ {
    location ~* \.js$ {internal;}
}

关键是使用前缀位置覆盖~* \.(?:js)$正则表达式位置。然后,您不必担心它在配置中的位置。

可以使用另一个正则表达式位置~ /dynamic/.*\.js$ {internal;}来解决,但是您需要确保始终位于~* \.(?:js)$位置之前;配置增长时等待发生的另一个问题。