你需要Apache中的mod_expires来使用.htaccess进行浏览器缓存吗


Do you need mod_expires in Apache for Browser caching with .htaccess?

我已经花了3个多小时搜索一个可用的浏览器缓存功能。我已经尝试了20多个HTaccess脚本,其中一半导致500个错误。然而,通过PageSpeed和GTMetrix,他们仍然高呼我应该使用浏览器缓存,这意味着HTaccess规则被忽略或不起作用。

说我已经尝试了20多个脚本,我想我可以说其中至少有一个是有效的,但由于谷歌和GTMetrix说没有浏览器缓存,.htaccess中的脚本被忽略了。

所以我真的很想知道可能是什么。可能是服务器相关的问题?我正在运行Ubuntu 12.04

也许没有加载特定的php mod。因为在你总是写<ifModule mod_expires.c>的代码中,我想,也许我需要mod_expires。因此,我创建了一个php文件,其中包含以下代码

<?php
    print_r(apache_get_modules());
?>

查看mod_expires是否已启用。。但事实并非如此。启用了整整24个mod,但尚未过期。

对于那些感兴趣的人来说,这些是通过上述脚本打印的已启用的MOD

Array ( [0] => core [1] =>
mod_log_config [2] =>
mod_logio [3] =>
prefork [4] =>
http_core [5] => 
mod_so [6] => 
mod_alias [7] => 
mod_auth_basic [8] => 
mod_authn_file [9] => 
mod_authz_default [10] => 
mod_authz_groupfile [11] => 
mod_authz_host [12] => 
mod_authz_user [13] => 
mod_autoindex [14] => 
mod_cgi [15] => 
mod_deflate [16] => 
mod_dir [17] => 
mod_env [18] => 
mod_mime [19] => 
mod_negotiation [20] => 
mod_php5 [21] => 
mod_reqtimeout [22] => 
mod_rewrite [23] => 
mod_setenvif [24] => mod_status )

谁能告诉我mod_expires是否是通过.htaccess进行浏览器缓存的必备工具,以及如何使其工作?

谢谢!

回答我自己的问题:

如果你发现自己遇到了所有htaccess脚本都不起作用的问题,请尝试上面的PHP代码(3行(,看看mod_expires是否在你的服务器上处于活动状态。

如果没有:请查看本教程如何启用它!:(