Il file .htaccess è un file molto potente e possiamo usufruire di tutte le sue potenzialità quando abbiamo a disposizione un web server Apache. L'uso a tutti più noto è quello che ci consente la riscrittura delle URL per avere indirizzi più user-friendly, ma ci sono anche altri usi meno noti, questi sono, a mio modo di vedere, alcuni dei più interessanti tra quelli trovati in giro per la rete.
Prevenire l'hotlinking
Se siete dei fotografi, dei grafici o in ogni caso avete sul vostro sito una quantità di immagini molto grande (e magari abbastanza pesante) questo è quello che fa per voi. Siti esterni potrebbero, infatti, utilizzare le vostre immagini sul loro sito. Questo produrrà un consumo extra di banda, elimnabile così:
RewriteEngine On
#Sostituire ?mysite\.com/ col vostro url
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Sostituire /images/nohotlink.jpg con un'immagine a vostra scelta
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
Pagina di errore personalizzata
Questo è anch'esso un uso molto comune, piuttosto che lasciare al nostro browser il compito di mostrare le pagine di errore, le scriveremo noi e lo faremo usando lo stesso stile che abbiamo utilizzato per il resto del sito:
ErrorDocument 400 /errors/badrequest.html
ErrorDocument 401 /errors/authreqd.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/serverr.html
Ridurre il peso del contenuto statico
Ennesimo trucco per ridurre lo spreco di banda. Stavolta proviamo a comprimere il contenuto statico di ogni pagina e daremo al browser utente il compito di decomprimerlo al momento della ricezione:
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
Il file .htaccess è un file molto potente ed un uso non corretto potrebbe causare l'impossibilità di raggiungere il sito, effettuate queste modifiche solo se sapete quello che state facendo.