Apache如何设置缓存

通过正确配置 Apache 的 mod_expires 模块,我们可以控制我们在访问者浏览器中的缓存设置。
我们可以通过为配置 Cache-Control HTTP 标头来控制此缓存。
这可以通过在服务器的 .htaccess 文件中添加 mod_expires 来完成。
如果在没有 Cache-Control 的情况下访问,该将向服务器请求加载每个图像、CSS 文件、Javascript 文件或者其他内容。

将所需的规则添加到根目录中的 .htaccess 文件中。
如果没有 .htaccess 文件,请创建一个。
该文件必须包含以下行:

ExpiresActive on

然后,添加必要的规则。
我们需要 ExpiresDefault 和 ExpiresByType 指令。
遵循以下语法:

ExpiresDefault "base[plus num type] [num type] ..."
ExpiresByType type/encoding "base[plus num type] [num type] ..."

这就是我们如何使用 Apache Expires 模块。
如果要为所有文件设置缓存,可以使用 ExpiresDefault,但如果要按类型设置,请使用 ExpiresByType。

其中 base 是以下之一:

  • access
  • now (相当于 'access')
  • modification

加号是可选的。
Num 必须是 atoi() 可接受的整数值。
类型可以是以下之一:

  • years
  • months
  • weeks
  • days
  • hours
  • minutes
  • seconds

ExpiresByType 指令指定 Expires 标头的值和为指定类型的文档生成的 Cache-Control 标头的 max-age 指令。

ExpiresDefault 指令指定默认算法来计算受影响领域中所有文档的到期时间。

ExpiresByType 指令仅在指定 ExpiresActive On 时有效。
仅对于指定的 MIME 类型,它会覆盖由 ExpiresDefault 设置的任何到期日期。

如我们所见,下面我们为缓存设置文件类型和时间:

ExpiresActive on
# ExpiresByType text/html "access plus 600 seconds"
ExpiresByType text/css "access plus 30 days"
ExpiresByType text/javascript "access plus 30 days"
ExpiresByType application/javascript "access plus 30 days"
ExpiresByType application/x-javascript "access plus 30 days"
ExpiresByType image/gif "access plus 7 days"
ExpiresByType image/jpg "access plus 7 days"
ExpiresByType image/jpeg "access plus 7 days"
ExpiresByType image/png "access plus 7 days"
ExpiresByType application/x-shockwave-flash "access plus 7 days"
# Add a far future Expires header for fonts
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType application/x-font-ttf "access plus 1 year"
ExpiresByType application/x-font-opentype "access plus 1 year"
ExpiresByType application/x-font-woff "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"

我们可以使用 FilesMatch 指令缓存文件。
这是一个简单的例子:

<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>
如何在Apache中设置 文件过期/Apache 缓存
日期:2020-06-02 22:18:50 来源:oir作者:oir