在Apache中配置缓存控制可以通过修改Apache的配置文件来实现。以下是一些常见的方法:
mod_expires模块启用mod_expires模块:
确保mod_expires模块已经启用。你可以在Apache的配置文件(通常是httpd.conf或apache2.conf)中添加以下行来启用它:
LoadModule expires_module modules/mod_expires.so
配置缓存控制:
在你的虚拟主机配置文件或.htaccess文件中添加以下内容来设置缓存控制头:
<IfModule mod_expires.c>
ExpiresActive On
# 设置所有资源的缓存时间为1天
ExpiresDefault "access plus 1 day"
# 针对特定文件类型的缓存设置
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/json "access plus 1 hour"
</IfModule>
mod_headers模块如果你需要更细粒度的控制,可以使用mod_headers模块来设置缓存控制头。
启用mod_headers模块:
确保mod_headers模块已经启用。你可以在Apache的配置文件中添加以下行来启用它:
LoadModule headers_module modules/mod_headers.so
配置缓存控制头:
在你的虚拟主机配置文件或.htaccess文件中添加以下内容来设置缓存控制头:
<IfModule mod_headers.c>
# 设置所有资源的缓存时间为1天
Header set Cache-Control "max-age=86400, public"
# 针对特定文件类型的缓存设置
<FilesMatch "\.(jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
</IfModule>
mod_expires和mod_headers你可以结合使用mod_expires和mod_headers来更灵活地控制缓存行为。
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 day"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/json "access plus 1 hour"
</IfModule>
<IfModule mod_headers.c>
Header set Cache-Control "max-age=86400, public"
<FilesMatch "\.(jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
</IfModule>
no-cache、no-store等)。通过以上方法,你可以在Apache中有效地配置缓存控制,从而提高网站的性能和用户体验。