根据nginx中的mime类型有条件地添加expires头

在ubuntu 12.10上运行nginx 1.4.1

需要有条件地发送expires头并基于http响应的mime类型/内容类型.

在location / {中添加了这段简单的代码

if ($sent_http_content_type = "text/css") { 
expires 7d;
}

即使$sent_http_content_type包含“text / css”,也不会发送过期标头

如何解决这个问题?

检查文件扩展名是不够的,因为在我的应用程序js,css中,图像是从php动态生成的.所以需要检查mime并根据它添加标题.

最佳答案
截至nginx 1.7.9:

map $sent_http_content_type $expires {
  default         off;
  application/pdf 42d;
  ~image/         max;
}

expires $expires;

注意:$sent_http_content_type有效,但在服务器处理完请求之前无法访问它…

答案是指向application / pdf的map条目,它允许日期值,或者甚至可以是application / pdf modified 42d例如

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。