• Chi Siamo
  • Suggerire siti
  • Farsi votare
  • Forum
  • Mappa del sito
Joomlashow Articoli Migliorare la velocit di caricamento di Joomla 1.5

Migliorare la velocit di caricamento di Joomla 1.5

22-12-2009 10:09

scritto da Federico Capoano

La performance di un sito web un fattore importante che in alcuni casi, se trascurato, pu rallentare sensibilmente la crescita di un sito o un attivit sul web.

Chiunque abbia un p di dimestichezza con PHP e MySQL sa che un CMS come Joomla pu peccare se si parla di velocit di caricamento o performance.

Inoltre tutti i web designer esperti di xHTML, CSS, Javascript e grafica sanno che moltissimi template per Joomla non tengono sufficientemente in considerazione le best practices volte ad ottenere delle performance decenti.

Snail Vector by ekamanganese on Devian Art

Dato che l'ottimizzazione delle performance richiede conoscenze tecniche approfondite ed elevata attenzione per i dettagli una pratica di rifinitura che pu essere eseguita solo da quei pochi eletti che, armati di pazienza e buona volont, vogliono ottenere il massimo dal proprio sito web.

Contenuti presenti in questo articolo

  • Dinamica del caricamento di un sito Joomla
  • Ottimizzare il template
  • Qualit del codice (x)HTML
  • Ridurre al minimo le richieste HTTP per le immagini caricate via css
  • Una soluzione tecnica d'aiuto: gli Sprite CSS
  • Peso delle immagini
  • Ridurre il numero delle richieste HTTP per css e javascript
  • Peso del file css
  • Peso e complessit dei file Javascript
  • Spostare i file Javascript in fondo al codice html
  • Disabilitare mootools.js e caption.js laddove non servono
  • Accorgimenti nella configurazione di Joomla
  • Attivare la compressione GZIP
  • Attivare la cache di Joomla
  • Il plugin "Page Cache", cos' e come attivarlo
  • Limitare moduli e plugin attivi
  • Accorgimenti riguardanti estensioni di terze parti
  • Scegliere con parsimonia le estensioni da utilizzare
  • Evitare Bridge tra Joomla e altri CMS
  • Evitare sistemi di statistiche in PHP e MYSQL
  • SEF: testing e caching necessari
  • Estensioni aggiuntive che aiutano a migliorare le performance
  • CssJsCompress (e alternative)
  • Query Cache
  • OptimizeTables: ottimizzare le tabelle MySQL
  • Magie con .htaccess
  • Prevenire l' "image hotlinking"
  • Settare "Expires Header", "Cache-control"
  • Disattivare gli ETags
  • Analizzare i risultati dell'ottimizzazione
  • Conclusione

Dinamica del caricamento di un sito Joomla

Joomla effettua diverse query complesse al database ad ogni caricamento di pagina, questo significa che quante pi sono le estensioni attive tanto pi il numero delle query aumenter. Spieghiamo questo concetto con uno schema.

Visitatore ->
    richiesta http ->
        Joomla - il codice php fa al database le seguenti domande:
            quali sono i plugin attivi per questa pagina?
            forniscimi le informazioni dei plugin attivi.
            qual' il contenuto di questa pagina?
            nel caso il contenuto fosse quello di un componente, forniscimi le informazioni sul componente.
            quali sono i moduli attivi per questa pagina?
            forniscimi le informazioni di ogni modulo attivo.
            qual' il template attivo per questa pagina?
            l'utente  loggato? Se s, forniscimi il suo username.
            
            <- MySQL elabora le richieste e restituisce i dati
    <- Joomla elabora i dati forniti da MySQL e restituisce i dati all'utente sotto forma di pagina HTML
L'utente scarica la pagina HTML, il css, le immagini e le eventuali istruzioni javascript
 

Questo schema una semplificazione delle richieste pi importanti che avvengono durante il caricamento.

Ipotizziamo di avere una situazione in cui il discorso performance sia stato perso di vista, immaginiamo quindi un sito in cui vengano caricate molte estensioni diverse che recuperano informazioni dal database. Immaginiamo che il template del sito non sia ottimizzato e di avere qualcosa come 50 utenti attivi nello stesso momento. Ci significherebbe la ripetizione di quello schema, moltiplicato per 50 volte, eseguito ad ogni caricamento di pagina. Il risultato?
Nei casi migliori un rallentamento sensibile della velocit di caricamento del sito, nei casi peggiori un crash del server.

Il numero delle query al database MySQL non solo l'unico fattore che gioca un ruolo importante nella determinazione delle performance generali di un sito realizzato con Joomla, ci sono molti altri fattori da tenere in considerazione.

Vediamo quali sono i fattori pi importanti su cui concentrarsi per migliorare sensibilmente la velocit di caricamento di un sito basato su Joomla 1.5.

Molti dei consigli di seguito descritti sono adatti a qualsiasi altro CMS o metodo di sviluppo di siti web.

La necessit di un background tecnico adeguato rende questo articolo di difficile lettura per coloro che sono alle prime armi con i siti web e Joomla.

Ottimizzare il template

Il template la base di partenza dell'ottimizzazione, questo vale universalmente per ogni sito web, a prescindere che si utilizzi Joomla, Drupal, altri CMS, framework o altri metodi.
I consigli presentati in questa parte sono particolarmente utili per chi sviluppa personalmente i template per i siti che realizza.

Qualit del codice (x)HTML

I template scritti con codice snello, pulito, semplice e chiaro dal punto di vista semantico permettono di tenere basso il peso delle pagine HTML generate da Joomla.
Questo non solo determiner una velocit di caricamento maggiore ma, secondo il principio "Quantit di testo VS quantit di codice HTML" aiuter anche il processo di ottimizzazione per i motori di ricerca.

Ridurre al minimo le richieste HTTP per le immagini caricate via css

Ogni immagine contenuta in un template viene scaricata singolarmente tramite una richiesta HTTP. Ogni richiesta HTTP viene inviata al server, quest'ultimo impiega un certo numero di millisecondi per rispondere ad ogni richiesta.
Di conseguenza quante pi immagini verranno richieste tanto pi alto sar il numero delle richieste HTTP da soddisfare. Considerando che ogni richiesta HTTP viene effettuata in successione una dopo l'altra e che ognuna ha bisogno di qualcosa tra gli 80 e i 250 millisecondi per ricevere in risposta l'immagine da scaricare, il risultato pu non essere dei migliori se le immagini, quindi le richieste HTTP, sono molto numerose.
Sebbene il metodo migliore per ottenere delle performance ottimali sia quello di utilizzare poche immagini, possiamo studiare metodi per ottenere un buon compromesso tra elaborazione del design e performance.

Una soluzione tecnica d'aiuto: gli Sprite CSS

La celebre tecnica degli Sprite consiste nel raggruppare il maggior numero possibile di immagini in un solo file, JPEG o PNG.

Solitamente un design complesso non permette di raggruppare tutte le immagini in una sola JPEG o una sola PNG a causa di esigenze diverse dei formati.
Per ovviare al problema si possono raggruppare le immagini in alcuni sottogruppi, ad esempio un gruppo potrebbe essere costituito da un file JPEG, un altro da un file PNG-8 non trasparente ed un altro ancora da una PNG-32 con trasparenza.

Il risultato finale dipende dalla complessit del design ma in genere cercando di raggruppare il maggior numero possibile di immagini nel minor numero di file si ottengono degli ottimi risultati.

Peso delle immagini

Tenere d'occhio il peso delle immagini un'altra buona abitudine da considerare per ottenere un tempo di caricamento decente. Questo non riguarda solamente le immagini del template, ma tutte le immagini presenti sul nostro sito.
Le immagini JPEG e PNG possono essere ottimizzate facilmente con Adobe Photoshop o Adobe Fireworks.

Segnalo alcuni strumenti e risorse esterne per approfondire il tema:

  • PunyPNG - strumento che permette di ottimizzare le immagini PNG direttamente online senza sforzo.
  • PNG Crush - strumento per l'ottimizzazione delle immagini PNG da scaricare ed utilizzare via command line.
  • Jpeg Library - strumento per l'ottimizzazione di immagini JPEG da scaricare ed utilizzare via command line.
  • Clever PNG Optimization Techniques - articolo che illustra alcune tecniche manuali per l'ottimizzazione di immagini PNG.
  • Clever JPEG Optimization Techniques - articolo che illustra alcune tecniche manuali per l'ottimizzazione di immagini JPEG.

Ridurre il numero delle richieste HTTP per css e javascript

Lo stesso discorso fatto per le immagini vale per qualsiasi altro file esterno, css e javascript. Purtroppo il discorso pu farsi complicato, vediamone i motivi:

  • alcuni sviluppatori tendono a tenere le diverse parti del css del template separate in diversi file.
  • in genere molte estensioni di terze parti utilizzano file css e javascript indipendenti, molte volte questi file vengono caricati inutilmente anche quando l'estensione non viene utilizzata.

In alcuni casi intervenire manualmente per raggruppare i file css e javascript non una cattiva idea, ma fortunatamente esistono delle estensioni che fanno questo automaticamente per noi e che vedremo pi avanti nell'articolo.

Peso del file css

Se sviluppate i vostri template personalmente, potete utilizzare alcuni accorgimenti in fase di sviluppo per risparmiare bytes nel css grazie all'uso di CSS shorthands, ovvero scorciatoie CSS.

Ad esempio, il seguente snippet:

 
.elemento{
    margin-top: 5px;
    margin-right: 10px;
    margin-bottom: 5px;
    margin-left: 10px;
}
 
.sfondo{
    background-color: #FFFFFF;
    background-image: url(../images/immagine.png)
    background-repeat: no-repeat
    background-position: 0 0;
    background-attachment: scroll
}

pu essere riassunto in due sole righe:

 
.elemento { margin: 5px 10px }
.sfondo { background: #FFF url(../images/immagine.png) no-repeat scroll 0 0 }

Potremmo risparmiare ulteriore spazio comprimendo il file, eliminando spazi superflui, punti e virgola finali e tenendo tutto il codice su una riga, ma cos facendo il codice diverrebbe illegibile e renderemmo il nostro lavoro di manutenzione un incubo.
Fortunatamente le esensioni a cui ho accennato poco fa svolgono anche il compito di comprimere il file css automaticamente senza modificare il file originale.

Peso e complessit dei file Javascript

L'uso di javascript per il miglioramento della "user experience" sul nostro sito un'ottima pratica, ma l'esagerazione porta sempre a degli squilibri.
Per questo vi consiglio di non esagerare con l'utilizzo di plugin ed estensioni che hanno il solo scopo di sfoggiare effetti grafici e transizioni di dubbia utilit.
Inoltre script complessi che richiedono un'uso di memoria consistente da parte del rendering engine del browser possono determinare un rallentamento sensibile del caricamento delle pagine.

Utilizzare strumenti come Javascript compressor per ridurre il peso dei vostri file javascript una buona idea.
In questo caso vi consiglio di salvare la versione compressa del vostro javascript in un file separato e tenere l'originale intatto per eventuali manutenzioni.

Spostare i file Javascript in fondo al codice html

È risaputo che durante il caricamento del codice javascript, il browser non esegue altri download e non prosegue con il rendering della pagina. Questo significa che nel caso il codice javascript inserito nel tag <head> abbia una peso non indifferente (ad esempio la libreria mootools o lo script di Google Analytics) il browser non proceder nel caricamento del resto della pagina finch il codice javascript non sar scaricato completamente.
Per evitare questo inconveniente basta spostare le istruzioni che caricano i file javascript in fondo alla pagina, laddove possibile.

Per approfondire questo argomento consiglio la lettura dell'articolo: High Performance Web Sites: Rule 6 Move Scripts to the Bottom

Disabilitare mootools.js e caption.js laddove non servono

spacer

Caricare la libreria mootools e lo script caption.js in tutte le pagine del sito un inutile spreco di risorse e perdita di tempo.

Nell'articolo "Disabilitare Mootools e caption.js dal frontend di Joomla 1.5" ho illustrato due semplici tecniche che permettono di disattivare questi due script dove non servono.

Accorgimenti nella configurazione di Joomla

Lavorando sulla configurazione di Joomla e dei singole estensioni base si possono ottenere dei miglioramenti nella velocit di caricamento notevoli.

Attivare la compressione GZIP

GZip un metodo di compressione open source molto efficace supportato dalla maggior parte dei piani di hosting linux. Utilizzando Gzip possiamo ridurre drasticamente (in media tra il 70% e il 90%) il peso delle pagine HTML generate da Joomla.

Attivare la compressione GZip in Joomla semplicissimo, basta aprire la "Configurazione globale" del nostro sito alla scheda "Server" e settare la voce "Compressione Pagine GZip" a "S" e salvere le modifiche.

Dopo aver salvato le modifiche testate il vostro sito per controllare che la compressione GZIP sia correttamente supportata e tutto funzioni correttamente.

Nel caso riceviate un errore di codifica molto probabile che il "mod_deflate" o il "mod_gzip" non siano attivi sul vostro server.
Se gestite un server dedicato o un VPS verificate le impostazioni del vostro server apache ed assicuratevi che il mod_deflate sia correttamente installato e attivato.

Se il vostro sito ospitato su uno shared hosting contattate il vostro fornitore chiedendo spiegazioni.

Per testare velocemente e senza sforzo l'efficacia della compressione Gzip sul vostro sito potete utilizzare Gzip Test Tool: non dovrete fare altro che inserire l'URL del vostro sito e far partire il test.

Rimarrete stupiti dal rapporto di compressione, osservate il risultato del test fatto su Joomlashow:

L'utilizzo della compressione Gzip determiner un uso maggiore di risorse da parte del processore del server.

Sui piani d'hosting non particolarmente performanti l'uso di questa funzionalit potrebbe risultare controproducente in quanto i server potrebbero non sopportare l'uso extra di risorse.
Questa possibilit pu essere facilmente prevenuta se si seguiranno gli altri accorgimenti riguardanti l'attivazione della cache di Joomla, l'utilizzo del componente Query Cache e la limitazione dei moduli e plugin attivi.

Attivare la cache di Joomla

L'attivazione della cache di Joomla un'operazione facile e permette di ridurre drasticamente l'uso di risorse del server.

Per attivare la cache di Joomla aprite la "Configurazione Globale" del vostro sito e alla cartella "Sistema" impostate la voce "Cache" a "S".

La voce "Tempo cache" indica la validit della cache e solitamente pu essere settata tra i 15 e i 60 minuti, questo fattore dipende anche dalla frequenza con cui i contenuti del vostro sito cambiano. Maggiore la frequenza di aggiornamento e cambiamento dei contenuti e minore dovr essere il tempo di validit della cache.

A livello tecnico, la Cache di Joomla agisce effettuando il caching degli oggetti recuperati dal database, che possono essere moduli, contenuti, risultati di funzioni e cos via. Questo concetto utile per capire la differenza tra questo tipo di cache ed il plugin "Page Cache" spiegato di seguito.

Il plugin "Page Cache", cos' e come attivarlo

Il plugin "Page Cache" o anche solo "Cache" presente in tutte le installazioni default di Joomla 1.5 e agisce effettuando il caching delle pagine generate da Joomla.
Appartiene alla categoria System e pu essere gestito ed attivato andando in "Estensioni > Gestione Plugin > System - Cache".

Se i file statici del vostro sito non cambiano con molta frequenza potete attivare l'opzione "Utilizza Browser Caching" e settare la "Durata vita Cache" tra i 15 e i 60 minuti.

La funzionalit di questo plugin molto potente, ma attualmente in Joomla 1.5 abbastanza limitata in quanto non c' modo di specificare quali pagine devono essere cachate e quali no.
Il mio consiglio quello di testare il plugin insistentemente.

Qualora vi accorgiate di non aver bisogno che un particolare modulo venga cachato da "Page Cache" provate ad aprire la sua configurazione in "Estensioni > Gestione moduli" e cercate un opzione che permetta di disabilitare il caching, solitamente il parametro chiamato "Caching" o "Cache" e il valore da settare "Never" o "Mai".

L'utilizzo di questo plugin in combinazione con la Cache globale di Joomla pu fare una differenza notevole nel miglioramento della velocit di caricamento di Joomla 1.5.

Limitare moduli e plugin attivi

Considerando che Joomla impiega del tempo (seppur minimo) per determinare quali plugin / moduli sono attivi in ogni pagina e che per recuperare i loro parametri, disattivare i moduli ed i plugin che non sono strettamente necessari un'ottima pratica.

Controllate le pagine "Gestione Moduli" e "Gestione Plugin" nel backend del vostro sito e disattivate i plugin che non sono strettamente necessari.
Se avete installato delle estensioni che non utilizziate pi, rimuovetele.

Fate seguire queste operazioni da un testing adeguato, potrebbe sempre succedere di disabilitare plugin che svolgono ruoli importanti che dovranno essere riabilitati.

Accorgimenti riguardanti estensioni di terze parti

Dopo aver lavorato sulla configurazione e le impostazioni di base di Joomla bene analizzare l'impatto sulle performance di estensioni di terze parti installate (o eventualmente da installare) sui vostri siti.

Scegliere con parsimonia le estensioni da utilizzare

Devo rivelare un dettaglio spinoso riguardo le estensioni di terze parti per Joomla: dopo un analisi al codice della maggior parte delle estensioni che ho utilizzato sono rimasto deluso dalla loro scarsa qualit e la loro scarsa (se non nulla) considerazione di principi quali accessibilit, performance, pulizia del codice e aderenza al modello MVC di Joomla 1.5.

Purtroppo la maggior parte delle estensioni vengono disegnate per soddisfare determinate necessit funzionali, per essere facili da installare ed utilizzare, dimenticando spesso tutto il resto.

Questo a mio avviso un problema gravissimo ed il motivo per cui moltissimi sviluppatori e web designer passano poi ad altri CMS e altri metodi per realizzare siti web.

"Non tutto oro ci che brilla", "l'apparenza inganna" e sebbene un'estensione possa sembrare perfettamente funzionante al momento dell'installazione, della configurazione e del testing iniziale, le aspettative dei perfezionisti sono destinate a rimanere deluse in moltissimi casi.

A mio avviso, i problemi pi gravi che si possono incontrare sono i seguenti:

  • troppe query MySQL
  • codice ridondante
  • funzionalit di dubbia utilit che consumano troppe risorse del server
  • uso massiccio di file javascript non compressi a volte divisi in pi files (aumentando cos le richieste HTTP) che in alcuni casi vengono caricati anche nelle pagine in cui l'estensione non attiva
  • uso di CSS ed immagini non ottimizzate
  • inaderenza al pattern MVC con il conseguente aumento di difficolt delle modifiche tecniche

Per tutti questi motivi vi consiglio di scegliere con cura le estensioni che volete utilizzare.

Installatele, testatele ed analizzatene il codice prima di cominciarle ad usare in ambiente di produzione.
Troppe cattive estensioni possono distruggere il vostro lavoro di ottimizzazione e rallentare sensibilmente il vostro sito.

Evitare Bridge tra Joomla e altri CMS

Solitamente gli script o i CMS che vengono integrati tramite bridge in Joomla sono sistemi indipendenti dotati di un framework, un database, una gestione degli utenti ed un template proprio.

Nella maggior parte dei casi l'utilizzo di un bridge determina una penalizzazione nelle performance rispetto ad una soluzione integrata con Joomla.

Evitare sistemi di statistiche in PHP e MYSQL

I sistemi di statistiche in PHP e MySQL possono aumentare spropositatamente l'uso di risorse della CPU del server e il numero delle query al database MySQL.

L'utilizzo di sistemi di statistiche che analizzano il log del server sono meno invasivi e pi indicati per chi non ha esigenze di monitorazione troppo impegnative.
In alternativa c' Google Analytics.

SEF: testing e caching necessari

La riscrittura delle URL o SEF URL una funzionalit essenziale per migliorare l'accessibilit ed il ranking SEO di un sito Joomla.

Il SEF di base di Joomla notevole, impostando il parametro "Utilizza mod_rewrite" su "No" si possono ottenere dei buoni risultati con un gran risparmio di risorse del Server, ma per molti (me compreso) le URL generate non sono abbastanza belle e non si ha un controllo sufficiente su di esse.

I componenti di terze parti come sh404SEF o Artio JoomSEF sono dotati di caching interno che permette di ridurre sensibilmente il numero delle query al database MySQL e l'uso di risorse del server.

Inoltre le configurazioni di questi componenti contengono delle spiegazioni su alcune funzionalit che se attive possono rallentare il caricamento del sito. Vi consiglio di analizzare attentamente la configurazione del vostro componente, testarla insistentemente e ricercare la miglior combinazione che faccia al caso vostro.

Estensioni aggiuntive che aiutano a migliorare le performance

Alcune estensioni aggiuntive possono aiutarci nell'ottimizzare la velocit di caricamento di Joomla 1.5.

CssJsCompress (e alternative)

Il plugin CssJsCompress abbastanza semplice da usare e dispone di alcune funzionalit molto interessanti:

  • Aggregazione dei file CSS esterni in un unico file
  • Compressione codice CSS (eliminazione spazi, punti e virgola finali, ecc.)
  • Compressione Gzip del file CSS generato
  • Aggregazione file Javascript esterni
  • Compressione Gzip del file Javascript generato
  • Caching dei risultati generati

Un uso corretto di questo plugin pu avere come risultato una drastica diminuzione della banda utilizzata dal server e una diminuzione del tempo necessario al caricamento delle pagine dovuto ad una diminuzione notevole del peso di file CSS e Javascript.

Per ottenere un buon risultato necesario testare il plugin escludendo eventuali file javascript o css che non devono essere aggregati, ad esempio potreste non volere che la libreria di Google Analytics venga aggregata con il file javascript del vostro template.

Esistono anche diverse alternative, a mio parere, al momento in cui sto scrivendo questo articolo, le due migliori sono:

  • RokGZipper - un plugin sviluppato dal team di Rocket Theme
  • Minify4Joomla - un componente avanzato per gli utenti pi esperti

Query Cache

Query Cache un componente sviluppato da Anthony Ferrara, uno dei coordinatori del team di sviluppo di Joomla, particolarmente esperto in materia di ottimizzazione delle performance di Joomla.

Questo componente effettua il caching delle query che vengono fatte al database MySQL contribuendo a diminuire l'uso di risorse della CPU e del database MySQL.
Al momento in cui scrivo questa guida il componente in fase di "Release Candidate" ed un uso scorretto pu danneggiare il vostro sito. Per questo motivo vi consiglio di effettuare un backup prima di installarlo.

IL COMPONENTE QUERY CACHE NON FUNZIONA CON IL LEGACY MODE ATTIVO. SE INSTALLATE IL COMPONENTE CON IL LEGACY MODE ATTIVATO IL VOSTRO SITO SARÀ DANNEGGIATO.

Per installare e configurare correttamente il componente seguite queste istruzioni:

  1. per prima cosa scaricate il componente dalla pagina Downloads del sito JoomlaPerformance.
  2. Assicuratevi che la directory "/libraries/joomla/database/database/" risiedente sul vostro server sia scrivibile.
  3. Installate il componente da "Estensioni > Installazione estensioni"
  4. Aprite la configurazione del componente da "Componenti > Query Cache > Config"
  5. Cambiate l'opzione "Backend" da "none" a quella che volete utilizzare, le opzioni non disponibili saranno grige e non selezionabili.
  6. Se utilizzate Memcached, inserite l'indirizzo IP del server e la porta.
  7. Salvate le modifiche.
  8. Aprite la configurazione globale di Joomla alla sezione "Server" e cambiate "Tipo Database" immettendo "mysql_cached" oppure "mysqli_cached", quindi salvate le modifche.
  9. Assicuratevi che la cartella "components/com_qcache/cache" sia scrivibile.

Dopo aver seguito queste istruzioni ed aver testato il sito dovreste notare la comparsa di diversi file nella cartella "components/com_qcache/cache".

OptimizeTables: ottimizzare le tabelle MySQL

Ottimizzare le tabelle MySQL periodicamente pu aiutare a migliorare le performance per i siti contenenti un gran numero di contenuti e record nel database.

L'operazione pu essere effettuata manualmente via phpMyAdmin, oppure pu essere svolta automaticamente dal plugin OptimizeTables.

Magie con .htaccess

E' possibile ottimizzare le performance di Joomla 1.5 (e di qualsiasi altro sito web ospitato su un server linux / apache che permetta l'uso di file .htaccess) attraverso alcune semplici istruzioni da inserire nel vostro file .htaccess.

Queste istruzioni potrebbero non funzionare sui server dove i moduli "mod_expires" e "mod_header" di apache non sono installati o attivati.

 
# Prevenire Image Hot Linking
# Cambiare ilvostrosito\.com con la vostra URL reale, mantenendo il backslash \, ad esempio !joomlashow\.it
RewriteCond %{REQUEST_FILENAME}  .(gif|jpe?g|png)$  [NC]
RewriteCond  %{HTTP_REFERER}  !^$
RewriteCond  %{HTTP_REFERER}  !ilvostrosito.com   [NC]
RewriteCond  %{HTTP_REFERER}  !bloglines.com   [NC]
RewriteCond  %{HTTP_REFERER}  !google.   [NC]
RewriteCond  %{HTTP_REFERER}  !yahoo.   [NC]
RewriteCond  %{HTTP_REFERER}  !search?q=cache   [NC]
RewriteRule  (.*)   http://127.0.0.1   [R,NC,L]
 
# Settare gli Expires headers e cache control
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault A600
  ExpiresByType image/x-icon A2592000
  ExpiresByType application/x-javascript A604800
  ExpiresByType text/css A604800
  ExpiresByType image/gif A2592000
  ExpiresByType image/png A2592000
  ExpiresByType image/x-icon A2592000
  ExpiresByType image/jpeg A2592000
  ExpiresByType image/jpg A2592000
  ExpiresByType image/jpeg A2592000
  ExpiresByType text/plain A86400
  ExpiresByType application/x-shockwave-flash A2592000
  ExpiresByType video/x-flv A2592000
  ExpiresByType application/pdf A2592000
  ExpiresByType text/html A600
 
  <filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
    Header set Cache-Control "max-age=2592000, public"
    Header unset Last-Modified
  </filesMatch>
  <filesMatch "\\.(css)$">
    Header set Cache-Control "max-age=604800, public"
    Header unset Last-Modified
  </filesMatch>
  <filesMatch "\\.(js)$">
    Header set Cache-Control "max-age=216000, private"
    Header unset Last-Modified
  </filesMatch>
  <filesMatch "\\.(xml|txt)$">
    Header set Cache-Control "max-age=216000, public, must-revalidate"
  </filesMatch>
  <filesMatch "\\.(html|htm|php)$">
    Header set Cache-Control "max-age=1, private, must-revalidate"
  </filesMatch>
 
    # Disattivare ETags
  Header unset ETag
</IfModule>
 
# Disattivare gli ETags
FileETag none

Vediamo velocemente e sinteticamente il significato di queste righe di codice.

Prevenire l' "image hotlinking"

Queste istruzioni fanno in modo che le immagini risiedenti sul vostro sito non possano essere caricate da altri siti attraverso il tag html <img>, proteggendo cos la banda del vostro server da inutili sprechi. Le istruzioni ammettono qualche eccezione in caso di alcuni motori di ricerca.

Per far funzionare correttamente queste istruzioni dovete cambiare la stringa "ilvostrosito\.com" con la vostra URL reale, mantenendo il backslash \, ad esempio !j

gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.