Проблема с кэшированием на Joomla

2 ответа

Здравствуйте дамы и господа. 

Столкнулся со следующей проблемой у меня 2-ва сайта на хостинге Timeweb оба на движке joomla (Joomla! 3.6.2 Stable [ Noether ] 4-August-2016 23:41 GMT). Ситуация следующая на обоих сайтах замечено именно на Chromium подобных браузерах, типа хрома оперы и т.д. что при правке/ изменении css кода, при обновлении страницы нечего не меняется, даже если нажать на кнопку обновить страницу несколько сот раз. Он тупа читает закешированный css фаил. На Mozilla Firefox такой проблемы нет, при 2-х кратном нажатии на кнопку обновить страницу, видны изменения, т.е. он перечитывает css с сервера, а не из кеша, в чем может быть проблема подскажите пожалуйста????  

Настройки файла .htaccess 

##Может быть закомментировано, если вызывает ошибку сервера. Возможность использовать
##символические ссылки на каталоги или файлы, которые не находятся в пределах корня
##вашего сайта. Запрет на листинг каталогов.
Options +FollowSymLinks -Indexes
##

## Кодировка по умолчанию
AddDefaultCharset utf-8
##

## Включение модуля mod_rewrite
<IfModule mod_rewrite.c>
RewriteEngine On
##

##Корневая директория - начало
RewriteBase /
##Корневая директория конец

##Редирект с index.php на / - начало
RewriteCond %{THE_REQUEST} !^POST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /tex\.php\ HTTP/
RewriteCond %{SERVER_PORT}>s ^(443>(s)|[0-9]+>s)$
RewriteRule ^index\.php$ http%2://kingbyte.ru/ [R=301,L]
##Редирект с index.php на / - конец

##Редирект без www на www - начало
RewriteEngine On
RewriteCond %{HTTP_HOST} ^kingbyte.ru
RewriteRule (.*) http://www.kingbyte.ru/$1 [R=301,L]

##Редирект без www на www - конец

</IfModule>
## Конец модуля mod_rewrite

##Индексная страница
DirectoryIndex index.php
##

## Настройки хостинга - начало
<ifModule mod_php.c>
php_value register_globals 0
php_value safe_mode 0
php_value allow_url_fopen 0
php_value display_errors 0
php_value file_uploads 1
php_value magic_quotes_gpc off
php_flag magic_quotes_gpc off
php_value magic_quotes_runtime 0
php_value upload_max_filesize 20M
php_value post_max_size 10M
php_value max_execution_time 100
php_flag register_globals Off
php_flag display_errors Off
php_flag file_uploads On
php_flag allow_url_fopen off
php_flag magic_quotes_runtime Off
</ifModule>
## Настройки хостинга - конец

## Правила обработки запросов для блокировки распространенных эксплоитов - начало
RewriteCond %{QUERY_STRING} proc/self/environ [OR]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_(en|de)code\(.*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
## Правила обработки запросов для блокировки распространенных эксплоитов - конец

##Блокировка прямого доступа к ядру - начало
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} \.php|\.ini|\.xml [NC]
RewriteCond %{REQUEST_URI} \/components\/ [OR]
RewriteCond %{REQUEST_URI} ^\/includes\/|^\/administrator\/includes\/ [OR]
RewriteCond %{REQUEST_URI} \/language\/ [OR]
RewriteCond %{REQUEST_URI} \/libraries\/ [OR]
RewriteCond %{REQUEST_URI} \/modules\/ [OR]
RewriteCond %{REQUEST_URI} \/plugins\/ [OR]
RewriteCond %{REQUEST_URI} \/templates\/ [OR]
RewriteCond %{REQUEST_URI} \/cli\/
RewriteRule ^(.*)$ index.php [R=404,L]
##Блокировка прямого доступа к ядру - конец

##Блокировка MySQL инъекций - начало
RewriteCond %{query_string} concat.*\( [NC,OR]
RewriteCond %{query_string} union.*select.*\( [NC,OR]
RewriteCond %{query_string} union.*all.*select [NC]
RewriteRule ^(.*)$ index.php [F,L]
##Блокировка MySQL инъекций - конец

##Блокировка файловых инъекций - начало
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC]
RewriteRule .* - [F]
##Блокировка файловых инъекций -конец

## Запретит доступа к htaccess.txt, configuration.php и php.ini
RewriteRule ^(htaccess\.txt|configuration\.php-dist|php\.ini)$ - [F]
##

## Раздел SEF ядра Joomla - начало
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|raw|ini|zip|json|file|vcf))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
##Раздел SEF ядра Joomla - конец

##Ускорение загрузки сайта

##Gzip сжатие с помощью модуля mod_deflate - начало
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>
##Gzip сжатие с помощью модуля mod_deflate - конец

##Gzip сжатие с помощью модуля mod_gzip - начало
<IfModule mod_gzip.c>
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_include mime ^application/x-font-woff.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
##Gzip сжатие с помощью модуля mod_gzip - конец

##Кэширование с помощью модуля mod_headers - начало
<ifModule mod_headers.c>
#кэшировать html и htm файлы на один день
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=43200"
</FilesMatch>
#кэшировать css, javascript и текстовые файлы на одну неделю
<FilesMatch "\.(js|css|txt)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
#кэшировать флэш и изображения на месяц
<FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
#отключить кэширование
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
</IfModule>
##Кэширование с помощью модуля mod_headers - конец

##Кэширование с помощью модуля mod_expires - начало
<ifModule mod_expires.c>
ExpiresActive On
#по умолчанию кеш в 5 секунд
ExpiresDefault "access plus 5 seconds"
#кэшировать флэш и изображения на месяц
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
#кэшировать css, javascript и текстовые файлы на одну неделю
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"
</ifModule>
##Кэширование с помощью модуля mod_expires - конец

Ответы (2)

Asylum +248
12.12.2016 11:54
Здравствуйте.

Я бы настоятельно советовал обновить версию Joomla, ибо версии ниже 3.6.4 уязвимы.

Принудительно очистить кеш браузера можно нажатием Ctrl+F5, либо в админ панели через - "очистить кеш"
Лавр Иванов +120
13.12.2016 17:02
Привет) Нужно понимать что статический контент на хостинге отдается веб-сервером нжинкс и правила его отдачи уже заранее указаны админами хостинга. Т.е. размещение условий для статики в .хтассесс не даст эффекта, который вы ожидаете получить)

А вообще это нормально, что первое обращение заканчивается кодом ответа HTTP 200 к статическому файлу, а второе с кодом ответа 304) not modified) ctrl-shift-r в помощь)

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

Виталий Лошков
139

Требуется помощь, консультация, настройка

При выполнении команды конвертации файла в odt из PHP-скрипта: system ("sudo -u root unoconv -f docx file.odt"); время от времени (может раз в день, может раз в неделю) команда перестает работать, при этом ответ от PHP-скрипта никакой не приходит. Лечится...
Захар
124

Nodejs и Express

На VDS запустил NodeJS и Express. Запускаю базовый скрипт:  const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => {   res.send('Hello World!') }) app.listen(port,...
Сергей Делягин
454

Настройка оптимальной производительности веб сервера на WP

Добрый день, ищем специалиста на услугу по настройке веб-сервера на VDS timeweb. Надо оптимизировать время до получения первого байта от сервера.
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте