- Che cos’è .htaccess?
- Esempi di .htaccess
- Ridirigere gli utenti a una pagina di errore specifica
- Aggiungere un’intestazione e un valore personalizzati
- Bloccare gli utenti in base all’IP
- Blocking referrers (hotlink protection)
- Aggiungimento di tipi MIME
- Sfruttare la cache del browser
- Abilitare Gzip
- Negare i metodi di richiesta HTTP
- Effettuare redirect 301
- Abilitare il CORS
Che cos’è .htaccess?
Il file .htaccess
(noto anche come file Hypertext Access) è utilizzato per definire configurazioni specifiche per i server web in esecuzione su Apache. Questo file di configurazione influisce sulla directory in cui è memorizzato e su tutte le sottodirectory all’interno di questa directory. Per esempio, se il file .htaccess
si trova all’interno della directory principale, influenzerà l’intero sito. D’altra parte, se il file si trova in una directory specifica, influenzerà solo quella directory e tutte le sottodirectory al suo interno.
Alcune piattaforme CMS come WordPress e Drupal hanno anche dei file .htaccess
che permettono di specificare alcune configurazioni che sono applicabili solo a quel sito. Il file .htaccess
può essere utilizzato per ottenere una varietà di cose tra cui:
- Effettuare reindirizzamenti
- Personalizzare le pagine di errore
- Restrizionare gli utenti in base all’IP
- Aggiungere tipi MIME
- Impostare intestazioni HTTP
- Proteggere con password certe cartelle
Il file .htaccess
può essere usato per ottenere molto altro, tuttavia la lista di cui sopra è tra gli usi più popolari di .htaccess
. La sezione seguente delineerà vari esempi di .htaccess
e come possono essere usati all’interno del tuo sito.
Esempi di .htaccess
Ci sono una vasta quantità di possibilità di configurazione che possono essere raggiunte all’interno del file .htaccess
. L’elenco qui sotto è uno degli esempi più comunemente usati.
Ridirigere gli utenti a una pagina di errore specifica
In base al codice di stato che un particolare file o pagina restituisce, è possibile reindirizzare l’utente a una pagina di errore personalizzata. L’esempio qui sotto mostra alcune varianti che puoi usare. Ognuna dipende dal codice di stato che viene restituito.
ErrorDocument 403 /forbidden.htmlErrorDocument 404 /notfound.htmlErrorDocument 500 /servererror.html
Aggiungere un’intestazione e un valore personalizzati
Le intestazioni HTTP personalizzate possono anche essere aggiunte tramite il file .htaccess
. Ci sono alcune opzioni di sintassi, come set
che sostituirà qualsiasi intestazione precedente che abbia lo stesso nome, add
che aggiungerà l’intestazione anche se ne esiste un’altra con lo stesso nome. Visita la guida alle intestazioni di pagina di Apache per saperne di più.
Header set X-Custom "Custom Value"
Nell’esempio qui sopra, il testo X-Custom
corrisponde all’intestazione HTTP che sarà restituita nella risposta HTTP mentre il testo Custom Value
corrisponde al valore di questa particolare intestazione.
Bloccare gli utenti in base all’IP
Per motivi di sicurezza, è possibile bloccare gli utenti in base al loro IP all’interno del file .htaccess
. Nell’esempio qui sotto, ci sono due IP che vengono bloccati. Possiamo anche decidere di non includere l’ultima cifra dell’indirizzo IP che risulterà nel blocco di tutti gli IP che contengono le prime tre cifre.
order allow,denydeny from 255.x.x.xdeny from 123.x.x.xallow from all
Blocking referrers (hotlink protection)
Blocking referrers, conosciuto anche come hotlink protection, è un metodo usato per bloccare certi referrers dal referenziare le risorse del tuo sito web e quindi rubare la tua banda. Usate lo snippet qui sotto per definire quali domini non possono fare riferimento al vostro contenuto e quindi riceveranno un errore 403 Forbidden
.
RewriteCond %{HTTP_REFERER} unwanteddomain\.com RewriteCond %{HTTP_REFERER} unwanteddomain2\.comRewriteRule .* -
Una funzionalità simile può essere ottenuta anche tramite la dashboard di KeyCDN. Per sapere come implementare la protezione degli hotlink nella vostra zona KeyCDN, visitate la nostra guida sui referrer di zona.
Aggiungimento di tipi MIME
I tipi MIME definiscono a cosa si riferisce una particolare estensione di file. Pertanto, a volte è necessario impostarlo nel tuo file .htaccess
per informare il server web a quale tipo di file stai facendo riferimento. Per vedere una lista completa dei tipi MIME visita la MIME Types List.
AddType image/gif .gif .GIF
Sfruttare la cache del browser
Il file .htaccess
può anche essere usato per aiutare a migliorare le prestazioni del sito web sfruttando la cache del browser. Ogni tipo di file può essere definito con un particolare valore di scadenza. Puoi definire una lista personalizzata di tipi di file e cambiare ogni loro valore di scadenza, tuttavia il seguente snippet è un buon punto di partenza.
## EXPIRES CACHING ##<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType text/html "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 1 month"</IfModule>## EXPIRES CACHING ##
Abilitare Gzip
Abilitare Gzip sul tuo server di origine aiuta a migliorare le prestazioni delle tue risorse poiché sono compresse e quindi possono essere consegnate più velocemente. Puoi definire una lista personalizzata di tipi MIME da comprimere, tuttavia l’esempio qui sotto è un buon punto di partenza. Per saperne di più sui benefici di Gzip e su come funziona, leggi il nostro articolo Enable Gzip Compression.
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml</IfModule>
Negare i metodi di richiesta HTTP
Ci sono diversi metodi di richiesta HTTP che vengono utilizzati per ottenere vari risultati. Se ci sono certi metodi HTTP che non vuoi che un utente utilizzi sul tuo sito web, puoi negarli con .htaccess
.
RewriteCond %{REQUEST_METHOD} !^(HEAD|OPTIONS|POST|PUT)RewriteRule .* -
Effettuare redirect 301
Se hai bisogno di eseguire un redirect 301
per una pagina che si è spostata, questo può essere facilmente ottenuto con .htaccess
. Basta usare lo snippet qui sotto che prende il primo URL (vecchio link) e lo reindirizza al secondo URL (nuovo link).
Redirect 301 https://yourwebsite.com/old-page https://yourwebsite.com/new-page
Abilitare il CORS
Abilitare il CORS è cruciale per fornire risorse statiche attraverso varie origini. Il seguente snippet può essere aggiunto al tuo file .htaccess
per permettere a tutte le origini di condividere le risorse. Altrimenti, se questo non è abilitato e la vostra origine richiede risorse da un’altra origine, riceverete un errore CORS. Leggi di più su CORS nel nostro articolo Come usare CORS.
<IfModule mod_headers.c> <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css|js|gif|png|jpe?g|svg|svgz|ico|webp)$"> Header set Access-Control-Allow-Origin "*" </FilesMatch></IfModule>
Gli esempi .htaccess
di cui sopra sono un ottimo punto di partenza per coloro che non hanno ancora familiarità con l’uso di .htaccess
, ma vogliono comunque eseguire alcune configurazioni del server web. Il file .htaccess
ha la capacità di eseguire una serie di compiti ed è abbastanza flessibile per soddisfare le esigenze del tuo sito web. Anche se questi esempi di .htaccess
sono un ottimo punto di partenza, potresti voler eseguire alcune configurazioni .htaccess
più avanzate. Per saperne di più su questo argomento considerate di controllare l’articolo della guida ai file .htaccess
di AskApache.