Bentrovati con un nuovo approfondimento firmato ElaMedia Group, Web Agency specializzata dal 2011 nella realizzazione di siti web in Wordpress a Roma e provincia.

Menu di navigazione dell'articolo

Il file .htaccess è un elemento cruciale nella configurazione di un sito Wordpress. Questo file, tipico degli ambienti server Apache, consente di eseguire una vasta gamma di operazioni, dalla sicurezza all'ottimizzazione delle performance. Nel contesto di WordPress, il file .htaccess è spesso usato per controllare la struttura dei permalink, gestire le redirezioni e applicare regole di sicurezza avanzate.

Cos'è il file .htaccess?

Si tratta di un file di configurazione per il server web Apache che permette agli amministratori di controllare il comportamento del server tramite una serie di direttive, senza dover accedere direttamente alla configurazione globale.

A cosa serve il file .htaccess in WordPress?

In WordPress, questo file gestisce una serie di funzionalità chiave tra cui:

  • Struttura dei permalink
  • Redirezioni personalizzate
  • Protezione da accessi non autorizzati
  • Ottimizzazione delle performance

Definizione e ruolo nel server Apache

Il file .htaccess è un file di configurazione utilizzato dai server web Apache per definire direttive specifiche all'interno di una determinata Directory. Il nome .htaccess deriva da "hypertext access" e suggerisce il suo utilizzo principale: controllare l'accesso ai file e gestire le risorse ipertestuali. In concreto, il file permette agli amministratori di modificare il comportamento del server senza dover accedere direttamente alla configurazione principale (file httpd.conf).

Principali direttive gestibili tramite .htaccess includono:

  • Permessi di accesso: Consentire o negare l'accesso a specifici indirizzi IP o range di indirizzi.
  • Redirezioni: Gestire le redirezioni di pagine o intere sezioni del sito web.
  • Controllo degli errori: Personalizzare le pagine di errore (404, 500, ecc.).
  • Sicurezza: Proteggere directory sensibili, limitare l'accesso a file specifici, implementare l'autenticazione base HTTP.
  • Caching e compressione: Migliorare le performance del sito abilitando la compressione GZIP e il caching del browser.
  • Permalink WordPress: Implementare la struttura dei permalink in WordPress.

Differenze tra .htaccess e altri file di configurazione

Il file .htaccess offre una flessibilità maggiore rispetto alla configurazione centrale del server (httpd.conf) grazie alle seguenti differenze:

Portata locale vs. Globale:

  • .htaccess: Le direttive presenti nel file si applicano solo alla directory in cui il file è posizionato e alle sue sottodirectory.
  • httpd.conf: Le direttive sono globali e riguardano l'intera configurazione del server.

Accesso e flessibilità:

  • .htaccess: Accessibile agli utenti senza permessi di amministratore, consente modifiche locali senza coinvolgere la configurazione globale.
  • httpd.conf: Richiede permessi di amministratore e l'accesso al file server per apportare modifiche.

Efficienza:

  • .htaccess: È processato in tempo reale, ogni volta che viene effettuata una richiesta. Questo può causare un sovraccarico di lavoro per il server.
  • httpd.conf: Viene processato solo all'avvio del server, risultando più efficiente.

Sicurezza:

  • .htaccess: Se usato in modo inappropriato, può esporre il server a vulnerabilità. È essenziale configurare correttamente i permessi di accesso.
  • httpd.conf: Solitamente più sicuro poiché accessibile solo agli amministratori.

Altri file di configurazione rilevanti:

  • wp-config.PHP: Il principale file di configurazione di WordPress, che gestisce le impostazioni del database e altre variabili chiave.
  • php.ini: File di configurazione per PHP, che regola le direttive come memoria, upload e gestione degli errori.
  • Robots.txt: File di configurazione per i crawler dei Motori di ricerca, controlla l'indicizzazione delle pagine.

Dove trovare il file .htaccess in WordPress

In un sito WordPress, il file .htaccess è generalmente posizionato nella directory principale, dove risiede anche il file wp-config.php. In ambienti tipici, la struttura delle directory potrebbe essere simile a questa:

/root_directory/

  .htaccess

  wp-config.php

  /wp-content/

  /wp-includes/

  /wp-admin/

Se il file .htaccess non è visibile, potrebbe essere nascosto per motivi di sicurezza. In tal caso, assicurati di abilitare la visualizzazione dei file nascosti nel tuo client FTP o file manager.

Creare o rigenerare il file .htaccess manualmente:

  1. Accedi a WordPress e vai su Impostazioni > Permalink.
  2. Seleziona una struttura dei permalink e clicca su Salva modifiche.
  3. Questo rigenererà automaticamente il file .htaccess.

Esempio di file .htaccess per WordPress:

# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

# END WordPress

Nota: Questo codice gestisce esclusivamente la struttura dei permalink. Per altre funzionalità, come la sicurezza e la performance, è necessario aggiungere ulteriori direttive.

Funzionamento del file .htaccess

Struttura di base e sintassi del file

La struttura di base di un file .htaccess si compone di una serie di direttive, ciascuna delle quali controlla un particolare aspetto del server web Apache. Ogni direttiva può essere composta da una o più linee di codice ed è generalmente suddivisa in sezioni con commenti per una migliore leggibilità.

  • Ogni direttiva si estende su una singola riga, a meno che non sia specificamente delimitata da tag <Directory>, <Files>, ecc.
  • I commenti iniziano con il simbolo #.
  • La sensibilità alle maiuscole/minuscole varia a seconda delle direttive.

Struttura di base:

# Commento

<IfModule mod_rewrite.c>  # Controlla se il modulo è disponibile

  RewriteEngine On       # Attiva il motore di riscrittura

  RewriteRule ^example$ /example.HTML [R=301,L]

</IfModule>

Elementi chiave:

  • Commenti: Iniziano con # e non vengono interpretati dal server.
  • Direttive condizionali: Possono essere delimitate da tag condizionali come <IfModule>, <Files>, <Directory>.
  • Direttive globali: Si applicano a tutte le richieste che coinvolgono quella directory e le sue sottodirectory.

Tipiche direttive di esempio

Di seguito alcune direttive comuni per configurare e ottimizzare un sito WordPress tramite .htaccess.

  1. Permalink e Riscrittura degli URL (mod_rewrite):

# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

# END WordPress

Perché è importante abilitare la compressione GZIP tramite .htaccess

La compressione GZIP è una tecnica di ottimizzazione delle prestazioni che consente di ridurre le dimensioni dei file inviati dal server al browser dell'utente. Questa compressione viene applicata a livello di server, e quando è abilitata tramite .htaccess, offre vantaggi significativi in termini di velocità e risparmio di larghezza di banda.

Come funziona:

  • Quando un browser richiede una pagina web, il server comprime il contenuto richiesto (come file HTML, CSS, JavaScript) utilizzando l'Algoritmo GZIP.
  • Il browser, a sua volta, decomprime il contenuto compresso e lo visualizza all'utente.
  • Il risultato è una trasmissione più rapida grazie alla riduzione delle dimensioni dei file.

Vantaggi della compressione GZIP:

  1. Riduzione della larghezza di banda:
  • I file compressi con GZIP sono generalmente ridotti del 70-90% rispetto alla loro dimensione originale.
  • Ciò si traduce in un notevole risparmio di larghezza di banda sia per il server che per l'utente finale.
  • Miglioramento delle prestazioni:
    • I file più piccoli si scaricano più rapidamente, riducendo il tempo di caricamento delle pagine.
    • Questo miglioramento nelle prestazioni aumenta la soddisfazione dell'utente e può anche influenzare positivamente il posizionamento nei motori di ricerca.
  • Compatibilità:
    • La maggior parte dei browser moderni supporta nativamente la decompressione GZIP.
    • La compressione GZIP può essere applicata a file HTML, CSS, JavaScript, XML, JSON e persino immagini SVG.

    Abilitare la compressione GZIP tramite .htaccess: Il file .htaccess può essere utilizzato per abilitare facilmente la compressione GZIP se il modulo mod_deflate è abilitato nel server Apache.

    <IfModule mod_deflate.c>

      AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css

      AddOutputFilterByType DEFLATE application/javascript application/json

      AddOutputFilterByType DEFLATE application/xml application/xhtml+xml

      AddOutputFilterByType DEFLATE application/rss+xml application/atom+xml

      AddOutputFilterByType DEFLATE image/svg+xml

    </IfModule>

    In questo esempio, il codice verifica la presenza del modulo mod_deflate e aggiunge un filtro per comprimere i tipi di contenuto specificati.

    Compressione GZIP:

    <IfModule mod_deflate.c>

    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css

    AddOutputFilterByType DEFLATE application/javascript application/json

    </IfModule>

    Verifica della compressione GZIP:

    • Utilizza strumenti come GIDNetwork GZIP Test o Check GZIP Compression per verificare se la compressione è abilitata.

    Perché è importante abilitare il caching lato browser per migliorare le performance

    Il caching lato browser è un'altra tecnica di ottimizzazione delle prestazioni che consente al browser dell'utente di memorizzare nella cache locale le risorse statiche come immagini, file CSS e JavaScript. In questo modo, le risorse memorizzate possono essere caricate direttamente dalla cache senza dover essere scaricate nuovamente dal server.

    Come funziona:

    • Il server invia al browser un'intestazione HTTP che specifica per quanto tempo il file può essere memorizzato nella cache.
    • Il browser rispetta queste direttive e riutilizza i file memorizzati localmente durante le visite successive.
    • Ciò riduce il numero di richieste HTTP e il tempo di caricamento delle pagine.

    Vantaggi del caching lato browser:

    1. Riduzione del carico del server:
    • Riducendo il numero di richieste HTTP, il server può concentrarsi sulle richieste più importanti.
    • Meno richieste si traducono in un minore utilizzo delle risorse del server.
  • Miglioramento delle prestazioni:
    • Le risorse statiche vengono caricate direttamente dalla cache locale, riducendo notevolmente il tempo di caricamento delle pagine.
    • L'esperienza utente viene migliorata in modo significativo.
  • Soddisfazione dell'utente e SEO:
    • Tempi di caricamento più rapidi aumentano la soddisfazione dell'utente, che può tornare più spesso sul sito.
    • I motori di ricerca premiano i siti con prestazioni migliori nei risultati di ricerca.

    Ricorda che se dovessi aver bisogno di un Consulente SEO a Roma, puoi contattarci al numero verde 800 119 270.

    Abilitare il caching lato browser tramite .htaccess: Il file .htaccess può essere utilizzato per abilitare il caching lato browser tramite il modulo mod_expires.

    <IfModule mod_expires.c>

      ExpiresActive On

      ExpiresDefault "access plus 1 month"

      ExpiresByType image/jpg "access plus 1 year"

      ExpiresByType image/jpeg "access plus 1 year"

      ExpiresByType image/gif "access plus 1 year"

      ExpiresByType image/png "access plus 1 year"

      ExpiresByType text/css "access plus 1 month"

      ExpiresByType application/javascript "access plus 1 month"

      ExpiresByType text/html "access plus 1 month"

    </IfModule>

    Dettagli della configurazione:

    • ExpiresActive On: Abilita le intestazioni Expires.
    • ExpiresDefault "access plus 1 month": Applica una durata predefinita a tutti i file.
    • ExpiresByType: Specifica durate diverse per ogni tipo di contenuto.

    Verifica del caching lato browser:

    Caching del browser:

    <IfModule mod_expires.c>

    ExpiresActive On

    ExpiresByType image/jpg "access plus 1 year"

    ExpiresByType image/jpeg "access plus 1 year"

    ExpiresByType image/png "access plus 1 year"

    ExpiresByType text/css "access plus 1 month"

    ExpiresByType application/javascript "access plus 1 month"

    </IfModule>

    Protezione dell'area di amministrazione:

    <Files wp-login.php>

    Order Deny,Allow

    Deny from all

    Allow from 123.456.789.000  # Sostituire con il proprio indirizzo IP

    </Files>

    Blocco degli hotlink:

    <IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteCond %{HTTP_REFERER} !^$

    RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?iltuosito.com [NC]

    RewriteRule \.(jpg|jpeg|png|gif)$ - [F,NC]

    </IfModule>

    Interazione tra .htaccess e WordPress

    Il file .htaccess è fondamentale per il corretto funzionamento di WordPress, specialmente per quanto riguarda la struttura dei permalink e l'interazione con i plugin.

    Permalink

    La gestione della struttura dei permalink tramite .htaccess avviene attraverso il modulo Apache mod_rewrite, che consente di riscrivere gli URL in modo che siano più leggibili e ottimizzati per i motori di ricerca.

    La struttura dei permalink è un aspetto fondamentale per qualsiasi sito WordPress. Un permalink (abbreviazione di "permanent link") rappresenta l'URL completo di una pagina o di un post, ed è ciò che gli utenti vedono e utilizzano per accedere a specifici contenuti. L'importanza di una struttura ben progettata risiede nei seguenti aspetti:

    SEO (Search Engine Optimization):

    • Una struttura chiara e leggibile migliora la visibilità del sito nei risultati dei motori di ricerca.
    • Gli URL contenenti Parole chiave pertinenti aiutano a posizionare meglio le pagine.

    Esperienza utente:

    • Gli URL chiari e descrittivi aiutano gli utenti a comprendere immediatamente l'argomento della pagina.
    • Le strutture semplici facilitano la condivisione e la memorizzazione dei link.

    Gestione dei contenuti:

    • Un sistema di permalink ben organizzato semplifica la gestione dei contenuti, rendendo più facile trovare, aggiornare o eliminare specifici articoli o pagine.

    Sicurezza e affidabilità:

    • I permalink statici riducono la possibilità di errori 404 o contenuti duplicati.
    • Gli URL prevedibili aiutano a mantenere una struttura coerente durante le migrazioni o le modifiche del sito.

    Esempio di impatto dei permalink SEO-friendly:

    • URL non ottimizzato: https://iltuosito.com/?p=123
    • URL ottimizzato: https://iltuosito.com/guida-alla-struttura-permalink-wordpress

    Differenti tipologie di permalink disponibili in WordPress

    WordPress offre diverse opzioni predefinite per la struttura dei permalink, accessibili tramite Impostazioni > Permalink. Vediamo le principali tipologie disponibili e i relativi vantaggi:

    1. Semplice (Plain): https://iltuosito.com/?p=123
    • Descrizione: URL di base, utilizza query string per identificare le pagine.
    • Pro: Nessuna configurazione aggiuntiva richiesta.
    • Contro: Non ottimizzato per SEO o utenti, scarsamente descrittivo.
  • Data e Nome (Day and Name): https://iltuosito.com/2024/05/06/titolo-articolo
    • Descrizione: Include l'intera data di pubblicazione (anno/mese/giorno) seguita dal titolo del post.
    • Pro: Fornisce una cronologia dettagliata delle pubblicazioni.
    • Contro: URL molto lungo, non sempre adatto a tutti i siti.
  • Mese e Nome (Month and Name): https://iltuosito.com/2024/05/titolo-articolo
    • Descrizione: Simile a "Day and Name", ma include solo anno e mese.
    • Pro: Struttura temporale più compatta.
    • Contro: Ancora piuttosto lungo e non ottimale per i post più vecchi.
  • Numerico (Numeric): https://iltuosito.com/archives/123
    • Descrizione: Utilizza un numero identificativo all'interno di una directory /archives/.
    • Pro: Struttura semplice e compatta.
    • Contro: Non descrittivo e non ottimizzato per SEO.
  • Nome Articolo (Post Name): https://iltuosito.com/titolo-articolo
    • Descrizione: Utilizza direttamente il titolo del post senza data o directory aggiuntive.
    • Pro: Struttura breve, chiara e ottimale per SEO.
    • Contro: Potenziali conflitti con pagine o categorie dallo stesso nome.
  • Struttura Personalizzata (Custom Structure):
    • Descrizione: Permette di creare una struttura personalizzata utilizzando tag speciali.
    • Tag Disponibili:
      • %year% - Anno di pubblicazione
      • %monthnum% - Mese di pubblicazione
      • %day% - Giorno di pubblicazione
      • %hour% - Ora di pubblicazione
      • %minute% - Minuto di pubblicazione
      • %second% - Secondo di pubblicazione
      • %post_id% - ID del post
      • %postname% - Nome del post (slug)
      • %category% - Categoria del post
      • %author% - Nome dell'autore

    Esempi di strutture personalizzate:

    • Categoria e Nome Articolo: /%category%/%postname%/
    • Anno, Mese e Nome Articolo: /%year%/%monthnum%/%postname%/

    Suggerimenti per scegliere la struttura migliore:

    • Prediligi la chiarezza e la brevità.
    • Assicurati che gli URL contengano parole chiave pertinenti.
    • Evita le strutture che potrebbero generare conflitti con pagine o categorie esistenti.

    Esempio di direttiva per i permalink:

    # BEGIN WordPress

    <IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteBase /

    RewriteRule ^index\.php$ - [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

    </IfModule>

    # END WordPress

    Plugin

    Alcuni plugin di WordPress scrivono direttamente sul file .htaccess per implementare funzionalità come la sicurezza o la compressione. Ad esempio, plugin come Wordfence o All in One WP Security aggiungono direttive specifiche per bloccare indirizzi IP sospetti e prevenire attacchi.

    Sicurezza

    La protezione dei file e delle directory sensibili di WordPress è una delle principali funzioni del file .htaccess.

    # Blocca l'accesso ai file .htaccess e wp-config.php

    <FilesMatch "(\.htaccess|wp-config\.php)">

    Order Allow,Deny

    Deny from all

    </FilesMatch>

    Interazione con il file wp-config.php

    Il file wp-config.php definisce variabili chiave come il tipo di database, le chiavi di sicurezza e altre impostazioni critiche. L'uso congiunto di .htaccess e wp-config.php può migliorare sia la sicurezza che le prestazioni di WordPress.

    <Files wp-config.php>

    Order Deny,Allow

    Deny from all

    </Files>

    A tal proposito vogliamo ricordarti che se desideri ottenere assistenza per Wordpress puoi contattarci scrivendoci a Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

    Redirezioni personalizzate tramite .htaccess

    Redirezioni 301

    Le redirezioni 301, o redirezioni permanenti, sono una parte essenziale della gestione del traffico web. Indicano ai motori di ricerca che una pagina o un'intera sezione del sito è stata spostata definitivamente a un nuovo indirizzo. Le redirezioni 301 consentono di trasferire l'autorità SEO dalla vecchia alla nuova pagina, mantenendo il posizionamento nei motori di ricerca.

    Vantaggi delle redirezioni 301:

    1. Mantengono l'autorità SEO: Gli utenti e i motori di ricerca sono reindirizzati automaticamente alla nuova pagina, evitando la perdita di posizionamento.
    2. Migliorano l'esperienza utente: Gli utenti che cercano contenuti spostati non trovano errori 404, ma vengono invece indirizzati direttamente alla nuova pagina.
    3. Gestiscono le pagine obsolete: Riorganizzando la struttura del sito, le redirezioni 301 evitano l'accesso a contenuti obsoleti o non più rilevanti.

    Come eseguire redirezioni permanenti tramite .htaccess

    Le redirezioni 301 possono essere facilmente implementate tramite il file .htaccess. Assicurati che il modulo mod_rewrite sia abilitato nel tuo server Apache.

    Sintassi per la redirezione 301:

    redirect 301 /vecchio-url https://iltuosito.com/nuovo-url

    Note importanti:

    • Utilizza Redirect 301 per redirezioni permanenti.
    • Assicurati di testare ogni redirezione per evitare cicli infiniti o errori 404.

    Redirezioni 302

    Le redirezioni 302, o redirezioni temporanee, indicano ai motori di ricerca che una pagina è stata spostata temporaneamente. A differenza delle redirezioni 301, non trasferiscono l'autorità SEO alla nuova pagina, permettendo ai motori di ricerca di mantenere la pagina originale indicizzata.

    Quando usare le redirezioni 302:

    1. Contenuti temporaneamente non disponibili: Quando una pagina è temporaneamente fuori servizio per manutenzione.
    2. Test A/B: Durante esperimenti per confrontare due versioni di una pagina.
    3. Cambio temporaneo di URL: Quando una campagna marketing indirizza temporaneamente a una Landing Page.

    Impatto delle redirezioni 302:

    • I motori di ricerca continuano a indicizzare la pagina originale.
    • L'autorità SEO non viene trasferita al nuovo URL.

    Come gestire redirezioni temporanee tramite .htaccess

    Le redirezioni 302 possono essere implementate tramite il file .htaccess con il comando Redirect o utilizzando mod_rewrite.

    Sintassi per la redirezione 302:

    redirect 302 /vecchio-url https://iltuosito.com/nuovo-url

    Bibliografia

    • Author: Tom Dupuis
      Title: "How to Master WordPress Speed Optimization"
      Publisher: Speed Optimization Media, 2019
    • Author: Stephen Burge
      Title: "WordPress Explained: Your Step-by-Step Guide"
      Publisher: OSTraining, 2020
    • Author: J.D. Biersdorfer
      Title: "WordPress: The Missing Manual"
      Publisher: O'Reilly Media, 2020
    • Author: Jeffrey Starr
      Title: "WordPress Security Made Easy"
      Publisher: Pixelita Press, 2019
    • Author: Rachel McCollin
      Title: "WordPress Plugin Development Cookbook"
      Publisher: Packt Publishing, 2017

    FAQ

    Come posso trovare il file .htaccess nel mio sito WordPress?

    Il file .htaccess si trova solitamente nella directory principale di WordPress. Se non lo vedi, potrebbe essere nascosto. Assicurati che il tuo client FTP o file manager visualizzi i file nascosti. Se il file non esiste, puoi crearne uno manualmente.

    Qual è la differenza tra redirezioni 301 e 302 nel file .htaccess?

    La redirezione 301 indica una modifica permanente dell'URL, trasferendo completamente l'autorità SEO alla nuova pagina. La redirezione 302, invece, rappresenta una modifica temporanea dell'URL, mantenendo l'autorità sulla pagina originale.

    È sicuro modificare il file .htaccess manualmente?

    Sì, è sicuro purché tu sappia cosa stai facendo. Modificare il file .htaccess in modo errato può portare a errori del server o compromettere la sicurezza. È consigliabile eseguire sempre un backup prima di apportare modifiche.

    Come posso bloccare i bot dannosi tramite il file .htaccess?

    Puoi bloccare specifici indirizzi IP o range di IP tramite direttive Deny. Ad esempio, per bloccare un indirizzo IP specifico:

    Order Deny,Allow 

    Deny from 123.123.123.123 

    Per un range di indirizzi IP:

    Order Deny,Allow 

    Deny from 123.123.123.0/24 

    Cosa succede se cancello accidentalmente il file .htaccess?

    Puoi ricreare il file .htaccess facilmente accedendo a Impostazioni > Permalink in WordPress e cliccando su "Salva modifiche". Questo rigenererà automaticamente il file con le impostazioni di permalink attuali.

    L'approfondimento è stato curato da Enrico Mainero, specializzato nello sviluppo di siti e commerce già pronti.

    Autore: Enrico Mainero

    Immagine di Enrico Mainero

    Dal 2011 Direttore Responsabile e Amministratore unico di ElaMedia Group SRLS. Mi dedico prevalentemente all'analisi dei siti web e alla loro ottimizzazione SEO, con particolare attenzione allo studio della semantica e al loro posizionamento organico sui motori di ricerca. Sono il principale curatore dei contenuti di questo Blog (assieme alla Redazione di ElaMedia).