我在我的nginx vhost配置中使用此代码来缓存我网站上的所有图像,scrips等:
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
}
此代码的问题在于它无法动态缓存由PHP生成的图像。其基础是这些文件没有.png或.jpg结尾。它们只有这种结构:domain.com/images/xyz.php?id = 123。
所以我的问题是: 我怎样才能缓存这些文件?有没有选择这样做,或者我必须编辑我的PHP脚本?
答案 0 :(得分:0)
您可以将缓存指令添加到处理PHP的位置,也可以在images文件夹中为PHP文件创建位置,将PHP处理指令添加到此处,并将此新位置置于通用PHP请求的位置之上。
location ~* images/(+.)\.php$ {
# Your PHP handling directives
[....]
expires 1M;
access_log off;
add_header Cache-Control "public";
}
location ~* \.php$ {
# Your PHP handling directives
[....]
}