在Apache 2.4上设置缓存控制

时间:2017-02-01 19:42:16

标签: php apache .htaccess caching

我的网站托管在Apache 2.4上 我尝试了解Google Insights的建议,但我不断收到此建议

利用浏览器缓存 在静态资源的HTTP标头中设置到期日期或最长期限会指示浏览器从本地磁盘而不是通过网络加载以前下载的资源。 利用浏览器缓存以获取以下可缓存资源:     https://www.google-analytics.com/analytics.js(2小时)

在我的.htaccess文件中,我添加了

<IfModule mod_headers.c>
    # WEEK
    <FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
        Header set Cache-Control "max-age=604800, public"
    </FilesMatch>

    # WEEK
    <FilesMatch "\.(js|css|swf)$">
        Header set Cache-Control "max-age=604800"
    </FilesMatch>
</IfModule>

然而,这根本没有帮助。在我的index.php中,我尝试设置

<?php
header( 'Cache-Control: max-age=604800' );
?>

没有结果。我的整个.htaccess文件是:

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

<IfModule mod_expires.c>
# Enable expirations
ExpiresActive On
# Default directive
ExpiresDefault "access plus 1 month"
# My favicon
ExpiresByType image/x-icon "access plus 1 year"
# Images
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
# CSS
ExpiresByType text/css "access plus 1 month"
# Javascript
ExpiresByType application/javascript "access plus 1 year"
</IfModule>
ErrorDocument 400 /400.php
ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)\.html$ $1.php?%{QUERY_STRING} [L]
</IfModule>

1 个答案:

答案 0 :(得分:1)

您无法做任何事情来影响异地资源。 Google经常会标记您无法控制的内容。它通常也是Google的资源。

https://www.google-analytics.com/analytics.js

这显然不在您的服务器上,因此您无法更改其任何标头。不要过于担心在PageSpeed上获得满分。只关心你能控制的事情。