@sergemin

Как настроить кэширование?

У меня на сайте постоянно возникают проблемы с кэшем. Отображается без стилей. Нужно заходить в админку и чистить кэш, тогда все работает.
Читал эту статью но четких пояснений не нашел. Как решить данную проблему?
  • Вопрос задан
  • 333 просмотра
Пригласить эксперта
Ответы на вопрос 2
B_Roma
@B_Roma
Я обычно настраиваю кэширование сайта через .htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
ServerSignature Off
#AddDefaultCharset UTF-8

php_value upload_max_filesize 32M
php_value post_max_size 10M
php_value default_charset utf-8
php_value max_execution_time 200

AddHandler application/x-httpd-php .html
AddHandler cgi-script .pl .py .jsp .asp .htm .shtml .sh .cgi
AddType application/x-javascript .js
AddType text/css .css
AddType text/xml .xml
AddType application/octet-stream .doc .mov .avi .pdf .xls
# ForceType application/x-httpd-php

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript

mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include mime ^text\.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image\.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

# Header unset ETag
# Так как мы посылаем expires заголовки с большим сроком,
# мы не используем ETag для статичного контента.
FileETag None
#кэшировать html и htm файлы на один день

Header set Cache-Control "max-age=43200"

#кэшировать css, javascript и текстовые файлы на одну неделю

Header set Cache-Control "max-age=604800"

#кэшировать флэш и изображения на месяц

Header set Cache-Control "max-age=604800"

ExpiresActive Off
#по умолчанию кеш в 5 секунд
ExpiresDefault "access plus 5 seconds"

# cache.appcache нельзя кэшировать в FF 3.6 (спасибо Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest "access plus 0 seconds"

#кэшировать флэш и изображения на месяц
ExpiresByType image/x-icon "access plus 604800 seconds"
ExpiresByType image/jpeg "access plus 604800 seconds"
ExpiresByType image/gif "access plus 604800 seconds"
ExpiresByType image/gif "access plus 604800 seconds"
ExpiresByType application/x-shockwave-flash "access plus 604800 seconds"
#кэшировать css, javascript и текстовые файлы на однe неделю
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 604800 seconds"
ExpiresByType application/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
#кэшировать html и htm файлы на один день
ExpiresByType text/html "access plus 43200 seconds"
#кэшировать xml файлы на десять минут
ExpiresByType application/xhtml+xml "access plus 600 seconds"
Ответ написан
Комментировать
@sanch0ss
я эту проблему решил так
(проблема: сайт с или без "www" - впоследствии правильно отображался тот вариант сайта, который был загружен первым, т.е. который упал в кэш)
просто назначаю в htaaccess основным домен с www

RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\.mysite\.by [NC]
RewriteRule (.*) www.mysite.by/$1 [R=301,L]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы