Использовать кеширование браузера на сайте

Я разработал свой сайт, используя magento и anguar js. На странице Google Insights я понял, что мне нужно использовать кеширование браузера. Поэтому для этого я определил свой файл .htaccess следующим образом:

 RewriteEngine On 
Options FollowSymLinks

RewriteBase /

RewriteCond %{HTTP_USER_AGENT} (facebookexternalhit/[0-9]|Twitterbot|Pinterest|Google.*snippet)
RewriteRule ^(.*)$ story.php?id=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_USER_AGENT} !facebookexternalhit/[0-9]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /#/$1 [L]

<IfModule mod_headers.c>
     # YEAR
     <FilesMatch "\.(ico|gif|jpg|jpeg|png|flv|pdf)$">
          Header set Cache-Control "max-age=29030400"
     </FilesMatch>
     # WEEK
     <FilesMatch "\.(js|css|swf|woff)$">
         Header set Cache-Control "max-age=604800"
     </FilesMatch>
     # 45 MIN
     <FilesMatch "\.(html|htm|txt)$">
        Header set Cache-Control "max-age=86400"
     </FilesMatch>

     Header set Connection keep-alive

</IfModule>

Но это не работает, так как Google Insight по-прежнему показывает одно и то же сообщение.


person androider    schedule 08.05.2016    source источник
comment
Попробуйте вместо этого использовать mod_expires: https://devdocs.io/apache_http_server/mod/mod_expires   -  person hjpotter92    schedule 08.05.2016
comment
должен ли я использовать его в файле apache cnf или файле htaccess   -  person androider    schedule 08.05.2016


Ответы (1)


Вы должны использовать mod_expires, чтобы проверить, какие активы должны быть перезагружены через определенное время. В вашем файле .htaccess вы можете настроить его следующим образом:

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 2 days"
    ExpiresByType image/gif "access plus 2592000 seconds"
    ExpiresByType image/jpeg "access plus 2592000 seconds"
    ExpiresByType image/png "access plus 2592000 seconds"
    ExpiresByType text/javascript "access 1 month"
    ExpiresByType text/x-javascript "access 1 month"
    ExpiresByType application/javascript "access 1 month"
    ExpiresByType application/x-javascript "access 1 month"
    ExpiresByType application/json "access 1 month"
</IfModule>

Как видите, со времени доступа прошло ExpiresDefault из 2 лет. Для всех изображений и javascripts вы можете определить время. Если вам нужны другие значения, вы можете найти подробные документы здесь http://httpd.apache.org/docs/current/mod/mod_expires.html

person codedge    schedule 08.05.2016