Il browser caching con htaccess su un sito Joomla!
Tramite alcune direttive inserite nel file htaccess è possibile attivare il cosiddetto caching, e così accelerare sensibilmente i tempi di caricamento delle pagine.
Quando un nuovo visitatore accede al sito il browser deve scaricare tutti i file, script, css, immagini. Non c’è modo di evitarlo, e questo comporta un numero molto alto di richieste HTTP e un rallentamento nel caricamento complessivo della pagina. Ma se il visitatore torna sul sito una seconda volta? Possiamo dire al browser dell’utente di immagazzinare questi file nelle sue cache; in questo modo, quando l’utente torna sul sito, il browser ricaricherà quei file dalle proprie cache piuttosto che doverle scaricare nuovamente. Con questo tipo di caching, chiamato browser caching, riduciamo il numero di richieste HTTP che il browser deve eseguire, con una forte accelerazione del caricamento della pagina.
Questo, ovviamente, vale per gli utenti che tornano una seconda volta sul sito.
Possiamo inserire nel file .htaccess del sito alcune direttive che indicano al browser per quanto tempo mantenere nelle proprie cache i file del sito. Per farlo occorre utilizzare un server Apache e avere attivi due moduli: mod_headers e mod_expires.
Con il modulo mod_headers attivo:
<IfModule mod_headers.c>
<FilesMatch "\\.(ico|gz)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
<FilesMatch "\\.(jpe?g|png|gif|swf|flv|pdf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\\.(js|css)$">
Header set Cache-Control "max-age=3600, private"
</FilesMatch>
<filesMatch "\\.(html|htm)$">
Header set Cache-Control "max-age=300, public"
</filesMatch>
</IfModule>
Queste le direttive per il browser caching con il mod_expires attivo.
# CACHE EXPIRATION #
ExpiresActive On
ExpiresDefault A300
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A3600
ExpiresByType text/css A3600
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
ExpiresByType text/plain A300
ExpiresByType application/x-shockwave-flash A604800
ExpiresByType video/x-flv A604800
ExpiresByType application/pdf A604800
ExpiresByType text/html A300
# CACHE EXPIRATION #
Nell'elenco sottostante sono indicate le tempistiche in secondi che possiamo inserire nelle direttive mod_headers e mod_expires (inserire nel codice solo il numero in secondi, non il corrispondente in minuti, ore, giorni e mesi).
# 300 5 MIN
# 600 10 MIN
# 900 15 MIN
# 1800 30 MIN
# 2700 45 MIN
# 3600 1 HR
# 7200 2 HR
# 10800 3 HR
# 14400 4 HR
# 18000 5 HR
# 36000 10 HR
# 39600 11 HR
# 43200 12 HR
# 46800 13 HR
# 50400 14 HR
# 54000 15 HR
# 86400 1 DAY
# 172800 2 DAY
# 259200 3 DAY
# 345600 4 DAY
# 432000 5 DAY
# 518400 6 DAY
# 604800 1 WEEK
# 1209600 2 WEEK
# 1814400 3 WEEK
# 2419200 4 WEEK
# 4838400 2 MONTH
# 7257600 3 MONTH
# 9676800 4 MONTH
# 12096000 5 MONTH
# 14515200 6 MONTH
# 16934400 7 MONTH
# 19353600 8 MONTH
# 21772800 9 MONTH
# 24192000 10 MONTH
# 26611200 11 MONTH
# 29030400 12 MONTH
Vuoi saperne di più sulle cache in Joomla? Leggi anche il tutorial Come funziona il caching in Joomla.