Cet article date d'il y a plus d'un an.
Il est possible qu'il ne soit plus à jour.
Optimisation de site Web #2 : Apache fait des miracles
La fois dernière, on a vu l’optimisation des objets eux mêmes (minimisation et compression sans perte), cette fois on regarde ce qu’on peut faire faire à Apache.
On crée un fichier .htaccess à la racine du site dans lequel on va mettre toutes ces directives Apache.
Compression
Deflate est un algorithme de compression utilisable par les serveurs Apache et par la grande majorité des navigateurs. Par contre cette compression n’est pas active par défaut. Il faut l’activer pour certains types de fichiers.
Ceux qui m’intéressent ici sont les fichiers statiques.
J’ajoute au fichier .htaccess le deflate pour les types de fichiers statiques :
# Compression Deflate
SetOutputFilter DEFLATE
# Fichiers à compresser
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE application/x-httpd-eruby
# Navigateurs non compatibles
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Fichiers à ne pas compresser (car déjà compressés)
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:pdf|avi|mov|mp3|mp4|rm)$ no-gzip dont-vary
# Proxies
Header append Vary User-Agent env=!dont-vary
Cache côté navigateur
# CACHE COTE NAVIGATEUR #
# Turn on Expires and set default expires to 4 week
ExpiresActive On
ExpiresDefault A2419200
# Set up caching on media files for 4 week
<FilesMatch "\.(ico|gif|jpg|jpeg|png|pdf|odt|odp|ppt)$">
ExpiresDefault A2419200
Header append Cache-Control "max-age=A2419200, public"
</FilesMatch>
# Set up 4 week caching on commonly updated files
<FilesMatch "\.(xml|txt|js|css)$">
ExpiresDefault A2419200
Header append Cache-Control "max-age=A2419200, public"
</FilesMatch>
# 1 jour pour les fichiers HTML
<FilesMatch "\.html$">
ExpiresDefault A86400
Header append Cache-Control "max-age=A86400, public"
</FilesMatch>
Et voilà, on est un peu mieux !