Nginx – args匹配较短的“expires”

我正在使用这样的重写

if (!-e $request_filename) { rewrite ^/(en|ga)?/?(.*)$ /index2.php?cultureKey=$1&mq=$2 last; } 

但在我需要某些重写的URL被caching了30秒之后。 剩余的fast_cgi请求应该是5分钟。

  fastcgi_cache_valid 200 302 5m; expires 5m; if ($args ~* (dynamic\.html)){ expires 30s; } 

我尝试过移动它们,但是dynamic.html和其他文件都在30秒后仍然被caching,或者它们都在30之后过期。

如何使dynamic.html(重写)caching30s和剩余的文件5m?

谢谢

$args是一个包含GET请求参数的variables,你确定你没有在$request_uri$uri吗? 也许使用位置块更好:

 location ~* dynamic.html { expires 30s } 

但它取决于你的configuration的其余部分,所以YMMV。

我认为这是'如果'是什么原因造成的问题。 你应该阅读这个http://wiki.nginx.org/IfIsEvil