使用mod_headers mod_expires进行Apachecaching

我正在为uni做功课,希望有人能为我澄清一些事情。 我需要设置以下内容:

  • configuration响应头“Cache-Control”,使其具有自所有图像文件访问后7天的“max-age”值
  • 对所有静态HTML文件进行修改后,将响应头“Cache-Control”configuration为具有5天的“max-age”值。
  • 将所有静态HTML和图像文件的响应标头“Cache-Control”configuration为“public”。
  • 将响应头“Cache-Control”configuration为对所有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> 

谢谢。

你需要使用

ExpiresActive On

例如,你想要申请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> 

我知道这是一个古老的问题,但如果有人绊倒它…

使用FilesMatch和ExpiresByType指令是有区别的。

FilesMatch通过扩展名匹配文件。

ExpiresByType通过它的MIMEtypes匹配一个文件。

使用ExpiresByType通常会更好。

来源http://www.websiteoptimization.com/secrets/advanced/caching-example.html

我会使用ExpiresByType全局而不是ExpiresDefault在上下文(FilesMatch)中。

你testing了你的configuration吗?