我正在做大学作业,希望有人能帮我澄清一些事情。我需要设置以下内容:
- 配置响应头“Cache-Control”,使所有图片文件的“max-age”值为自访问以来 7 天
- 配置响应头“Cache-Control”,使所有静态 HTML 文件的“max-age”值为自修改以来 5 天。
- 将响应头“Cache-Control”配置为所有静态 HTML 和图像文件的值为“public”。
- 将响应头“Cache-Control”配置为所有 PHP 文件的值为“private”。
我的问题是,使用 FilesMatch 还是 mod_expires ExpiresByType 来实现这一点更好?到目前为止,我使用了以下方法:
<FilesMatch "\.(gif|jpe?g|png)$">
ExpiresDefault "access plus 7 days"
Header set Cache-Control "public"
</FilesMatch>
<FilesMatch "\.(html)$">
ExpiresDefault "modification plus 5 days"
Header set Cache-Control "public"
</FilesMatch>
<FilesMatch "\.(php)$">
Header set Cache-Control "private"
</FilesMatch>
谢谢。
答案1
您需要使用
到期日期
指令,无论你想在哪里应用Expires
标题,例如
<Location / >
ExpiresActive On
ExpiresByType image/png "access plus 7 days"
ExpiresByType image/jpg "access plus 7 days"
ExpiresByType image/gif "access plus 7 days"
ExpiresByType text/html "modification plus 5 days"
<FilesMatch "\.(gif|jpe?g|png)$">
Header set Cache-Control "public"
</FilesMatch>
<FilesMatch "\.(html)$">
Header set Cache-Control "public"
</FilesMatch>
<FilesMatch "\.(php)$">
Header set Cache-Control "private"
</FilesMatch>
</Location>
答案2
我知道这是一个老问题但以防万一有人偶然发现它......
使用 FilesMatch 和 ExpiresByType 指令是有区别的。
FilesMatch 根据文件的扩展名来匹配文件。
ExpiresByType 根据文件的 mime 类型进行匹配。
一般情况下最好使用ExpiresByType。
来源http://www.websiteoptimization.com/secrets/advanced/caching-example.html
答案3
我将在全局范围内使用 ExpiresByType,而不是在上下文(FilesMatch)中使用 ExpiresDefault。
您是否测试过您的配置?