Vai al contenuto
BeoHosting
BeoHosting
Tecnico

Guida al file .htaccess

BeoHosting Team··10 min read di lettura
Guida al file .htaccess

Cos'è il file .htaccess?

.htaccess (Hypertext Access) è un file di configurazione per i web server Apache e LiteSpeed. Su BeoHosting lo modifichi tramite il pannello di controllo cPanel. Si trova nella directory radice del tuo sito e ti permette di controllare il comportamento del server a livello di directory, senza accesso alla configurazione principale del server. Questo lo rende estremamente utile sull'hosting condiviso, dove non hai accesso a httpd.conf.

Il punto iniziale nel nome indica che il file è nascosto sui sistemi Linux/Unix. Alcuni client FTP e file manager non lo mostrano di default: controlla le opzioni per visualizzare i file nascosti. In cPanel, il File Manager ha un'opzione "Show Hidden Files" nelle impostazioni.

Dove si trova .htaccess?

Il file .htaccess principale si trova nella directory radice del tuo sito (public_html o htdocs). Le regole al suo interno si applicano a tutti i file e a tutte le sottodirectory. Puoi avere file .htaccess aggiuntivi nelle sottodirectory con regole specifiche per quella directory: queste sovrascrivono le regole del .htaccess superiore per i file di quella directory.

Redirect

Redirect permanente 301

Un redirect 301 indica ai motori di ricerca che la pagina è stata spostata in modo permanente a un nuovo indirizzo. Il valore SEO (link juice) viene trasferito al nuovo URL. Usalo quando cambi la struttura degli URL, sposti il sito su un nuovo dominio o consolidi più URL in uno solo.

  • Redirect di una singola pagina: Redirect 301 /vecchia-pagina /nuova-pagina, reindirizza un percorso specifico verso uno nuovo.
  • Redirect di un intero dominio: usa RewriteRule con una condizione HTTP_HOST per reindirizzare tutto il traffico da un dominio a un altro.
  • Redirect da www a non-www: una RewriteCond per HTTP_HOST che verifica la presenza del prefisso www e reindirizza alla versione senza www (o viceversa).

Redirect temporaneo 302

Un redirect 302 è temporaneo: indica ai motori di ricerca di mantenere il vecchio URL nell'indice, perché la pagina potrebbe tornare al vecchio indirizzo. Usalo per promozioni temporanee, test A/B o manutenzione.

Forzare HTTPS

Uno degli usi più comuni di .htaccess è reindirizzare il traffico HTTP verso HTTPS. Per farlo ti serve un certificato SSL installato che abiliti l'HTTPS. È fondamentale per la sicurezza del sito e per il posizionamento SEO. La regola utilizza RewriteCond per verificare se la connessione è già HTTPS (tramite la variabile HTTPS o l'header X-Forwarded-Proto) e, in caso contrario, esegue un redirect 301 verso la versione HTTPS dello stesso URL.

Regole di sicurezza

Proteggere l'accesso ai file sensibili

Blocca l'accesso ai file che non dovrebbero essere accessibili pubblicamente. Una direttiva FilesMatch con espressioni regolari può bloccare l'accesso a file di configurazione come .htaccess, .env, wp-config.php, php.ini e simili. Il server restituisce 403 Forbidden quando qualcuno tenta di accedere a questi file.

Disabilitare il directory listing

L'opzione "Options -Indexes" impedisce ad Apache di mostrare l'elenco dei file in una directory priva di file indice. Senza questa opzione, chiunque può vedere tutti i file di una directory semplicemente visitandone l'URL.

Bloccare i bot malevoli

Usa RewriteCond con la variabile HTTP_USER_AGENT per bloccare bot malevoli noti, scraper e crawler di spam. Puoi usare espressioni regolari per intercettare più stringhe user-agent e reindirizzarle a una pagina 403 o semplicemente bloccarne l'accesso.

Protezione dall'hotlinking

L'hotlinking si verifica quando altri siti usano le tue immagini direttamente dal tuo server, consumando la tua banda. Una regola RewriteCond verifica l'header HTTP_REFERER e blocca le richieste di immagini (jpg, jpeg, png, gif, svg) che non provengono dal tuo dominio. Puoi persino reindirizzare le immagini hotlinkate a un'immagine segnaposto che avvisa che l'hotlinking è bloccato.

Caching

Un caching configurato correttamente velocizza notevolmente il tuo sito per i visitatori di ritorno. Il browser memorizza i file localmente, così non devono essere scaricati di nuovo a ogni visita.

Impostazioni di cache per tipo di file

Usa mod_expires per controllare per quanto tempo i browser memorizzano in cache i diversi tipi di file:

  • Immagini (jpg, png, gif, svg, webp): 1 anno, le immagini cambiano raramente.
  • File CSS e JavaScript: 1 mese, cambiano più spesso delle immagini ma non ogni giorno.
  • Font (woff, woff2, ttf): 1 anno, i font praticamente non cambiano mai.
  • Pagine HTML: cache breve o assente, i contenuti si aggiornano spesso.
  • PDF e documenti: 1 mese, aggiornati occasionalmente.

Compressione GZIP

La compressione GZIP riduce la dimensione dei file inviati al browser, in genere del 60-80%. Usa mod_deflate per comprimere text/html, text/css, application/javascript, application/json, text/xml e formati di testo simili. Non comprimere le immagini, perché sono già compresse.

Pagine di errore personalizzate

Invece dei generici errori del server, puoi mostrare pagine personalizzate in linea con lo stile del tuo sito, che aiutano i visitatori a trovare ciò che cercano.

  • ErrorDocument 404: la pagina mostrata quando la pagina richiesta non esiste. Includi la ricerca del sito, i link più popolari e i contatti.
  • ErrorDocument 403: mostrata quando l'accesso è vietato. Spiega il motivo e offri un'alternativa.
  • ErrorDocument 500: errore interno del server. Spiega che il problema è temporaneo e fornisci un contatto di supporto.
  • ErrorDocument 503: servizio non disponibile. Utile per mostrare una pagina di manutenzione con il tempo di ritorno previsto.

Snippet utili per l'uso quotidiano

Bloccare un indirizzo IP

Usa le direttive Require (Apache 2.4+) o Order/Deny (Apache 2.2) per bloccare indirizzi IP o range specifici. È utile per bloccare attaccanti noti o visitatori indesiderati.

Proteggere l'area di amministrazione di WordPress

Limita l'accesso alla directory wp-admin e al file wp-login.php a indirizzi IP specifici. Questo riduce drasticamente gli attacchi brute force al tuo sito WordPress. Puoi anche aggiungere l'autenticazione HTTP come ulteriore livello di protezione.

Impostare i valori PHP

Sull'hosting condiviso puoi modificare la configurazione PHP tramite .htaccess usando le direttive php_value e php_flag: upload_max_filesize per la dimensione degli upload, max_execution_time per il timeout degli script, memory_limit per la RAM e post_max_size per la dimensione delle richieste POST.

Redirect di manutenzione

Quando lavori sul sito e vuoi mostrare una pagina di manutenzione ai visitatori, usa RewriteCond per verificare se il visitatore proviene dal tuo IP (lasciandoti passare) e reindirizza tutti gli altri a una pagina maintenance.html. Usa un redirect 302 (temporaneo), mai 301.

Errori comuni e risoluzione dei problemi

  • 500 Internal Server Error: l'errore più comune. Di solito indica un errore di sintassi nel file .htaccess. Controlla i log del server (Error Log in cPanel) per i dettagli. Rimuovi le regole una alla volta finché non trovi quella problematica.
  • Loop di redirect: si verifica quando due regole si reindirizzano a vicenda. Usa le condizioni RewriteCond per evitare il loop (ad esempio verifica se la connessione è già HTTPS prima di reindirizzare).
  • Regole che non funzionano: verifica che mod_rewrite sia abilitato. Su LiteSpeed le regole di Apache di solito funzionano, ma possono esserci differenze. Controlla anche che il file .htaccess abbia i permessi corretti (644).
  • Problema con UTF-8: salva il file .htaccess in codifica UTF-8 senza BOM (Byte Order Mark). Il BOM può causare comportamenti inattesi.

Conclusione

.htaccess è uno strumento potente che ti dà il controllo del sito a livello di server. Dai redirect alla sicurezza, dal caching alle pagine di errore personalizzate, una configurazione corretta può migliorare notevolmente prestazioni, sicurezza e SEO. Fai sempre un backup prima delle modifiche, testa una regola alla volta e usa i log del server per diagnosticare i problemi.

BeoHosting Team

10+ anni di esperienza — Specialisti di web hosting e infrastrutture

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Ultimo aggiornamento: