Come+modificare+il+file+htaccess+di+WordPress
soswpit
/tutorial/htaccess-wordpress/amp/
Tutorial

Come modificare il file htaccess di WordPress

Published by
Andrea Di Rocco

“Htaccess” è l’abbreviazione di “hypertext access”.

Infatti, come ti spigherò più avanti in questa guida, il file .htaccess di WordPress è un file di configurazione che puoi utilizzare per sovrascrivere le impostazioni del server e migliorare la sicurezza e la performance del tuo sito.

Anche se c’è un punto all’inizio del nome .htaccess, non si tratta di un’estensione, ma del nome vero e proprio del file. Il punto all’inizio serve a nasconderlo in modo che non venga mostrato quando si guardano i file in una cartella, a meno che non sia stata abilitata l’opzione per mostrare i file nascosti.

A cosa serve il file .htaccess su WordPress

Il file .htaccess di WordPress, caricato nella directory root del tuo sito, viene usato sui server che funzionano col il software Apache Web Server.

Questo programma rileva ed esegue automaticamente i file .htaccess caricati nelle directory del sito web. Puoi editare il file e, attraverso comandi specifici, abilitare o disabilitare delle funzionalità che ti permettono di proteggere il tuo sito da spam, hacker e altre minacce. Le funzionalità includono: 

  • redirect html di base (ad esempio in caso di errore 404),
  • blocco dell’accesso a file specifici,
  • impostazione di una password per proteggere il contenuto e
  • disattivazione dell’hotlinking.

Esegui sempre il backup prima di modificare il file .htaccess di WordPress

Ho sottolineato in diverse occasioni l’importanza di effettuare il backup del sito prima di andare a modificarne degli elementi fondamentali.

Nel caso del file .htaccess di WordPress, questa raccomandazione diventa particolarmente importante perché un singolo errore di sintassi può portare a rompere il codice dell’intero sito.

Ovviamente, basta prepararsi ed effettuare il backup prima di toccare il file. Così, in caso di errori, potrai ripristinare velocemente i file ed evitare di perdere ore e ore di lavoro.

Anche se sei abbastanza esperto, il minimo assoluto da fare è scaricare una copia del file .htaccess di WordPress sul tuo computer, in modo da poterlo ripristinare in caso di errore. Per farlo su WordPress:

  1. accedi al cPanel,
  2. poi vai su Files e
  3. poi seleziona File Manager.
  4. Nel pop up delle Preferenze, metti la spunta sull’opzione per mostrare i file nascosti e poi conferma salvando. In questo modo, quando accederai alla cartella radice del sito, potrai vedere il file.
  5. Cliccaci sopra, poi seleziona l’opzione per scaricarlo e salvalo sul tuo computer:
    • Se dovessi aver bisogno di sostituirlo in caso di errore, dovrai solo cliccare sul bottone Carica e mettere la spunta su quella per sovrascrivere i file esistenti.
    • Potrai a quel punto selezionare il file e aprire la tua copia locale per caricarla nella directory e tornare al File Manager.

Come creare un file .htaccess su WordPress

In base all’installazione scelta, il tuo sito WordPress potrebbe non avere un file .htaccess. Ovviamente in questo caso, dovrai crearlo prima di procedere alle modifiche. Puoi farlo direttamente tramite il cPanel. Usa un editor di testo, come Notepad++ o il Blocco Note di Windows, per creare un file chiamato htaccess.txt.

Inserisci il codice predefinito previsto per le versioni di WordPress successive alla 4.2. Il codice per installazioni singole è questo:

# 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

Se, invece, hai attivato Multisite su WordPress 3.5 o versioni successive, dovrai usare il codice qui sotto:

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L]
RewriteRule . index.php [L]

Caricalo sul sito come ti ho spiegato sopra, cliccando sul pulsante Carica nel cPanel.

Una volta caricato, rinominalo .htaccess.

Come ti ho spiegato per il file robots.txt, anche in questo caso il nome è importante, altrimenti il server non riuscirà a riconoscerlo.

Per poter proteggere il file .htaccess di WordPress da eventuali attacchi, è importante impostare un livello di permesso 644. Si tratta il permesso predefinito per i file su WordPress.

Come spiegato nella documentazione ufficiale:

  1. il primo numero si riferisce all’accesso concesso all’utente;
  2. il secondo al gruppo;
  3. il terzo al resto del mondo.

Il 6 rappresenta la facoltà di leggere e scrivere, mentre il 4 indica la sola lettura.

Mentre per alcuni file di configurazione, come wp-config.php, puoi impostare un permesso 600 (solo l’utente singolo puoi accedervi), l’impostazione consigliata per il file .htaccess è 604 perchè WordPress ha bisogno di accedervi in modo da poterlo aggiornare automaticamente.

Come effettuare cambiamenti al file .htaccess di WordPress

Le righe che iniziano con il simbolo “#” costituiscono dei commenti e non sono incluse nelle regole.

Ricordati di copiare il codice che trovi qui sopra senza modificare nessuno degli elementi che si trovano tra i commenti “# BEGIN WordPress” e “# END WordPress”.

Per le installazioni multiple, vale lo stesso principio di non modificare nulla, però non ci sono i commenti di inizio e fine nel codice. Se anche volessi apportare delle modifiche, è molto probabile che WordPress le sovrascriverebbe.

Ti consiglio di aggiungere le tue modifiche, delimitate da commenti di inizio e fine sotto al codice predefinito di WordPress. In questo modo il file sarà ordinato e potrai facilmente individuare il codice che aggiungi per ciascuna regola aggiuntiva.

Puoi editare il file .htaccess direttamente nel cPanel, modificarlo tramite FTP oppure scaricarlo ed effettuare le modifiche con un altro editor di testo, come Microsoft WordPad.

Se decidi di editare il file su cPanel, procedi così:

  1. Una volta effettuato l’accesso a cPanel, vai su File > File Manager e scegli di visualizzare i file nascosti, come abbiamo visto prima.
  2. Vai nella directory radice del sito e clicca sul file .htaccess, poi seleziona Modifica.
  3. Effettua la prima modifica e poi clicca su Salva prima di uscire, altrimenti tutti i cambiamenti andranno perduti.

Indipendentemente dal metodo scelto, ricaricare il sito dopo ciascuna modifica ti permette di controllare che il sito funzioni correttamente:

  • Se dovessi riscontrare problemi, ripristina subito il file .htaccess originale e prova di nuovo. Ti ho consigliato di effettuare il backup del sito e di salvare una copia locale del file proprio per questa ragione.
  • Se, invece, il sito funziona correttamente, puoi procedere con la modifica successiva.

Vediamo adesso qualche esempio di regole che possiamo applicare tramite il file .htaccess.

1. Prevenire l’hotlinking delle immagini

Se gli utenti copiano l’URL di un’immagine del tuo sito e la usano per caricarla sul loro invece di farlo attraverso il loro server, utilizzano la tua banda, rallentando il tuo sito.

Puoi impedire a terzi di farlo aggiungendo questa regola al tuo file .htaccess.

Utilizza il codice qui sotto, sostituendo “your-site.com” con il dominio del tuo sito e https://www.your-site.com/hotlink.gif con l’URL dell’immagine da proteggere:

RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} 
!^https://(www.)?your-site.com/.*$ [NC] RewriteRule .(gif|jpg)$ 
https://www.your-site.com/hotlink.gif [R,L]

2. Impedire di scoprire il nome utente

Se un utente inserisce l’URL tuosito.com/?author=1, viene portato ella pagina dell’autore a cui è associato l’ID numerico. In questo modo, l’utente può reperire tutti i nomi utenti usati da chi ha pubblicato contenuti sul tuo sito.

Si tratta di un dettaglio che può essere utile agli hacker, a cui resterebbe solo da trovare la password.

Se l’utente ne ha scelta una robusta, il tuo sito resta protetto da minacce, ma se uno degli autori ne usa una facile da rintracciare, il pirata di turno ha meno ostacoli…

Per impedire l’enumerazione dei nomi utenti, puoi aggiungere questa regola:

 RewriteCond %{QUERY_STRING} author=\d
 RewriteRule ^ /? [L,R=301]

3. Restringere l’accesso alla sezione Admin

Se usi un IP statico, puoi limitare l’accesso alla bacheca admin usando questa regola:

ErrorDocument 401 /path-to-your-site/index.php?error=404
ErrorDocument 403 /path-to-your-site/index.php?error=404

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^IP Address One$
RewriteCond %{REMOTE_ADDR} !^IP Address Two$
RewriteCond %{REMOTE_ADDR} !^IP Address Three$
RewriteRule ^(.*)$ - [R=403,L]
</IfModule>

Gli indirizzi IP non autorizzati verranno rimandati alla pagina di errore 404. Ricordati di sostituire:

  1. il percorso del sito con quello che usi,
  2. il dominio con quello del tuo sito e
  3. gli IP con i vari che vuoi abilitare.

Se gli utenti hanno degli indirizzi IP dinamici oppure vari utenti sullo stesso network devono accedere al sito, puoi usare questa regola:

ErrorDocument 401 /path-to-your-site/index.php?error=404
ErrorDocument 403 /path-to-your-site/index.php?error=404

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_REFERER} !^https://(.*)?your-site.com [NC]
RewriteCond %{REQUEST_URI} ^(.*)?wp-login.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteRule ^(.*)$ - [F]
</IfModule>

In questo modo bloccherai l’accesso alla bacheca admin, in modo che solo chi digita l’URL manualmente nel browser può accedervi.

Gli hacker possono sempre provare a indovinare manualmente le credenziali di accesso degli utenti, ma non potranno usare bot per farlo e questo riduce l’ammontare di tentativi di attacco.

4. Proteggere il sito da aggiunte di codice

Una delle cose che fanno i pirati informatici è cambiare le variabili di WordPress GLOBALS e _REQUEST al fine di aggiungere codice malevolo.

Per impedire che queste modifiche vengano accettate dal tuo sito, aggiungi questo codice:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

5. Proteggere i file importanti

Attraverso la regola qui sotto, puoi proteggere i log degli errori e i file wp-config.php e php.ini, impedendo l’accesso dall’esterno. Assicurati che il file php.ini del tuo sito si chiami proprio così, altrimenti cambia il nome in modo appropriato:

<FilesMatch "^.*(error_log|wp-config.php|php.ini|.[hH][tT][aApP].*)$">
Order deny,allow
Deny from all
</FilesMatch>

6. Escludere le directory dalla navigazione

WordPress ha una struttura di file predefinita come spiego nella guida sulla struttura tecnica di WordPress. Per questo i visitatori potrebbero visualizzare i tuoi file di configurazione e una lista delle tue directory digitando il dominio e il nome della directory (tuodominio.com/wp-content-uploads/).

Questo facilita l’operato dei malintenzionati, che non dovrebbero nemmeno indovinare dove i file che cercano sono stati collocati. Aggiungendo questa regola, puoi render più difficile la loro vita:

Options All -Indexes

7. Impedire l’accesso ai file PHP e la loro esecuzione

Anche i file PHP possono essere usati per aggiungere codice malevolo al tuo sito.

Per questo è importante proteggerli: blocca l’accesso degli utenti non autorizzati ai file PHP di tema e plugin utilizzando questo codice:

RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude.php
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/
RewriteRule wp-content/plugins/(.*.php)$ - [R=404,L]
RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude.php
RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/
RewriteRule wp-content/themes/(.*.php)$ - [R=404,L]

Già che ci siamo, possiamo impedire anche l’esecuzione non autorizzata degli stessi file.

In questo modo, anche se gli hacker riuscissero a caricare il loro codice, questo non verrebbe eseguito da WordPress.

Impedisci l’esecuzione di file PHP caricati nel tuo sito con il codice qui di seguito:

<Directory "/var/www/wp-content/uploads/">
<Files "*.php">
Order Deny,Allow
Deny from All
</Files>
</Directory>

8. Proteggere la directory wp-includes

Qui si trovano molti file importanti per il tuo sito. Impedisci agli hacker di accedervi:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

Modificare il file .htaccess di WordPress usando Yoast SEO

Se hai attivato il plugin Yoast SEO sul tuo sito WordPress, puoi utilizzarlo per modificare il file .htaccess direttamente dalla Bacheca:

  1. Clicca sul menu SEO che vedi nella barra laterale di WordPress.
  2. Se l’opzione Strumenti non viene mostrata, clicca su SEO per visualizzare il menu.
  3. Poi clicca su Bacheca e, infine,
  4. apri la scheda Funzionalità e ti si aprirà una finestra come quella che vedi qui sotto.

Adesso che sei qui, segui questi passaggi:

  1. Abilita l’opzione Pagine delle impostazioni avanzate,
  2. poi conferma cliccando su Save changes.
  3. Adesso dovresti vedere molte più opzioni disponibili nel menu SEO.

Nell’immagine puoi vedere come nel menu delle opzioni ci siano molte più voci rispetto a prima. A questo punto per procedere:

  1. Clicca su Strumenti e ti si aprirà una pagina come quella che vedi qui sotto.
  2. Clicca sulla terza voce: Modifica file.

Modifica il file .htaccess e poi salva i cambiamenti.

Anche in questo caso valgono i consigli che ho scritto prima su backup del sito e salvataggio di una copia del file prima di apportare modifiche.

Conclusione

Come abbiamo visto in questa guida, il file .htaccess di WordPress è molto importante per proteggere il tuo sito da intrusioni e rallentamenti.

Si tratta solo di una delle cose che puoi fare per proteggere la sicurezza del tuo sito WordPress. Abbiamo già parlato:

Abbiamo inoltre visto come editare questo file e ti ho sottolineato l’importanza di fare un backup del sito e di salvare una copia locale prima di apportare delle modifiche.

Hai mai editato il file .htaccess di WordPress del tuo sito?

Quali modifiche hai apportato o pensi di effettuare in futuro?

Parliamone nei commenti!

Andrea Di Rocco

Dal 2012 ad oggi, guido il Team di SOS WP. Mi occupo di insegnare come creare qualsiasi sito web in WordPress e insieme al mio team di esperti forniamo assistenza siti web a 360°.

Recent Posts

Envato Elements: foto, video, musica e risorse creative per il tuo sito WordPress

Quando si tratta di costruire un sito web ci sono due aspetti che devono lavorare…

14 secondi ago

Plugin da aggiornare subito: vulnerabilità pericolosa

Torniamo a parlare di plugin da aggiornare. Stavolta la situazione coinvolge quattro milioni di siti…

1 ora ago

Errore 400: che cos’è e come risolverlo

L'Errore 400, conosciuto anche come "Bad Request", è un codice di stato HTTP che indica…

22 ore ago

Aggiornamento algoritmo di Google: come si concluderà novembre?

Nel mese di novembre che ormai si avvia a conclusione è stato rilasciato da parte…

22 ore ago

Pop3 e IMAP: come configurare la posta elettronica col tuo dominio

La posta elettronica è uno strumento ormai imprescindibile in qualunque strategia di marketing ma configurare…

2 giorni ago

Perché siti peggiori del mio si posizionano meglio? Ecco la spiegazione

Su internet si trova di tutto e tu stai cercando idee per i tuoi contenuti.…

3 giorni ago