Guide

htaccess WordPress: come modificare il file htaccess

Una guida completa al file .htaccess. Scopri a cosa serve, dove si trova e perchè modificarlo, come modificare questo file manualmente e utilizzando Yoast SEO.

Modificare htaccess WordPress

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.

“Htaccess” è l’abbreviazione di “hypertext access”. Anche se c’è un punto all’inizio del nome, 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 su 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 ridirezioni 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 back up 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 WordPres sul tuo computer, in modo da poterlo ripristinare in caso di errore. Per farlo su WordPress, accedi al cPanel, poi vai su Files e poi seleziona File Manager.

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. 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.

Assistenza WordPress rapida e veloce con SOS WP - 2

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 fie 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, il primo numero si riferisce all’accesso concesso all’utente, il secondo al gruppo e 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ì. Una volta effettuato l’accesso a cPanel, vai su File > File Manager e scegli di visualizzare i file nascosti, come abbiamo visto prima.

Vai nella directory radice del sito e clicca sul file .htaccess, poi seleziona Modifica. 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 back up 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 http://www.your-site.com/hotlink.gif con l’URL dell’immagine da proteggere:

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

htaccess WordPress

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 il percorso del sito con quello che usi, il dominio con quello del tuo sito e 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 uqesta 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} !^http://(.*)?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.in, 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. 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.

Clicca sul menu SEO che vedi nella barra laterale di WordPress.

editare il file robots.txt utilizzando Yoast SEO tramite la bacheca di WordPress

Se l’opzione Strumenti non viene mostrata, clicca su SEO per visualizzare il menu. Poi clicca su Bacheca e, infine, apri la scheda Funzionalità.

htaccess WordPress come editarlo con Yoast SEO

Abilita l’opzione Pagine delle impostazioni avanzate, poi conferma cliccando su Save changes.

Adesso dovresti vedere molte più opzioni disponibili nel menu SEO. Clicca su Strumenti.

editare il file robots.txt utilizzando Yoast SEO - menu strumenti

Seleziona la voce Modifica file.

Modificare file htaccess con Yoast SEO

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.

Hai bisogno di assistenza tecnica per WordPress? Prendi appuntamento con i nostri esperti!

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 di come bloccare i malware e di come metterlo in sicurezza con Wordfence Security e Login LockDown.

Abbiamo inoltre visto come editare questo file e ti ho sottolineato l’importanza di effettuare un back up 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!

Acquistare un dominio e un hosting WordPress con SiteGround

Altre guide della stessa
categoria

4 COMMENTI
Commenta
  1. Giorgio

    ciao,
    questo il mio .htaccess
    Ma la limitazione IP per accedere al login non funziona.
    Probabilmente sbaglio qualcosa. Ma non capisco cosa..

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    ErrorDocument 401 /http://www.rosadipintohomes.com/index.php?error=404
    ErrorDocument 403 /http://www.rosadipintohomes.com/index.php?error=404

    RewriteEngine on
    RewriteCond %{REQUEST_URI} ^(.*)?wp-login.php(.*)$ [OR]
    RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
    RewriteCond %{REMOTE_ADDR} !^IP 93.38.48.39$
    RewriteRule ^(.*)$ – [R=403,L]

    Rispondi
  2. fabio

    sera andrea…dovrei configurare un htaccess…dovrei proteggere un file xml e la cartella htaccess solo renderle non apribili da browser….peró dovrei rendere il file xml visto cioe senza restrizioni solo da kodi che é un open source per avviare le liste xml per lo streaming…sai se possibile e se si come compilare?

    Rispondi
    • Team

      Ciao Fabio, puoi usare un codice in .htaccess come
      RewriteEngine on
      RewriteRule ^yourfile.xml$ 404.html
      dove al posto di your file inserisci il nome del file xml

      Rispondi

Lascia qui il tuo commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *