我有一个 PHP 网站,其中一些内容是用户生成的。例如,用户可以上传调整大小并可以请求的照片。我想在我的 nginx 配置中根据 MIME 类型(响应头)指定一个Expires
头(用于缓存) 。Content-Type
这是我当前的配置(我的主机自动添加http{}
and server{}
):
charset utf-8;
types {
text/css css;
text/javascript js;
}
gzip on;
gzip_types text/html text/css text/javascript application/json image/svg+xml;
location / {
if (!-e $request_filename) {
rewrite . /index.php last;
break;
}
set $expire 0;
if ($upstream_http_content_type = image/jpeg) { set $expire 1; }
if ($upstream_http_content_type = image/png) { set $expire 1; }
if ($upstream_http_content_type = image/gif) { set $expire 1; }
if ($upstream_http_content_type = image/svg+xml) { set $expire 1; }
if ($upstream_http_content_type = text/css) { set $expire 1; }
if ($upstream_http_content_type = text/javascript) { set $expire 1; }
if ($expire = 1) {
expires max;
}
}
这适用于静态文件(如.png
文件——它们得到正确的Expires
标题),但它对动态生成的内容index.php
(根本没有Expires
标题)没有影响。有人知道我做错了什么吗?