我正在使用这样的重写
if (!-e $request_filename) {
rewrite ^/(en|ga)?/?(.*)$ /index2.php?cultureKey=$1&mq=$2 last;
}
但之后我需要某些重写的 URL 缓存 30 秒。剩余的 fast_cgi 请求应该是 5 分钟。
fastcgi_cache_valid 200 302 5m;
expires 5m;
if ($args ~* (dynamic\.html)){
expires 30s;
}
我尝试过移动它们,但是 dynamic.html 和其他文件在 30 秒后仍然被缓存,或者它们都在 30 秒后过期。
如何使dynamic.html(重写)缓存30秒,剩余文件缓存5分钟?
谢谢
答案1
$args
是包含请求参数的变量GET
,你确定不在$request_uri
或之后吗$uri
?也许使用位置块更好:
location ~* dynamic.html {
expires 30s
}
但这取决于您的其余配置,所以 YMMV。
答案2
我认为是“如果”导致了问题。你应该读读这个http://wiki.nginx.org/IfIsEvil