可在虚拟主机中通过.htaccess启用mod_expires实现静态资源差异化缓存:图片设1年、CSS/JS设1个月、HTML/JSON设0分钟,并禁用ExpiresDefault以避免误缓存。
在虚拟主机环境中,虽然无法直接修改主配置文件 httpd.conf,但完全可以通过站点根目录下的 .htaccess 文件启用 mod_expires,为不同静态资源类型设置差异化缓存策略。关键在于按资源特性分配合理过期时间,兼顾访问速度与内容更新及时性。
确认 mod_expires 已启用
多数共享虚拟主机默认已加载该模块。如不确定,可创建一个简单 PHP 文件(如 info.php)写入 <?php phpinfo(); ?>,搜索 “expires” 查看是否列出 expires_module。若未启用且无权限开启,需联系主机商;若支持,则可继续配置。
在 .htaccess 中按类型精细控制缓存
将以下代码粘贴到网站根目录的 .htaccess 文件中(若不存在请新建),它会为常见静态资源设定不同缓存时长:
- 图片类(长期稳定):GIF、JPEG、PNG、ICO 等设为 1 年,适合基本不常更换的图标、Banner
-
CSS 与 JS(中短期):设为 1 个月,平衡更新频率与复用率;若使用版本号或哈希命名(如
main.a1b2c3.css),可放心设为 1 年 - HTML 和动态资源(短时效):设为 0 分钟或 10 分钟,确保用户能及时看到页面更新
-
避免全局默认缓存:禁用
ExpiresDefault或设为极短时间(如"now plus 0 min"),防止误缓存 HTML、JSON 等易变内容
示例 .htaccess 配置片段
<IfModule mod_expires.c><br>
ExpiresActive On<br>
ExpiresByType image/gif "access plus 1 year"<br>
ExpiresByType image/jpeg "access plus 1 year"<br>
ExpiresByType image/png "access plus 1 year"<br>
ExpiresByType image/x-icon "access plus 1 year"<br>
ExpiresByType text/css "access plus 1 month"<br>
ExpiresByType application/javascript "access plus 1 month"<br>
ExpiresByType application/x-javascript "access plus 1 month"<br>
ExpiresByType text/html "now plus 0 min"<br>
ExpiresByType application/json "now plus 0 min"<br>
ExpiresDefault "now plus 0 min"<br>
</IfModule>
验证缓存是否生效
部署后,打开浏览器开发者工具(F12 → Network 标签页),刷新页面,点击任意静态资源(如 style.css),查看响应头中是否包含:
-
Expires:显示具体过期时间(GMT) -
Cache-Control:含max-age=...值,与你设置的时间一致(例如max-age=2592000对应 30 天)
若两者均存在且数值合理,说明配置已起效。注意:首次访问不会体现缓存效果,需二次刷新或清空缓存后重试。

















