“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.
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:
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:
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:
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.
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ì:
Indipendentemente dal metodo scelto, ricaricare il sito dopo ciascuna modifica ti permette di controllare che il sito funzioni correttamente:
Vediamo adesso qualche esempio di regole che possiamo applicare tramite il file .htaccess.
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]
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]
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:
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.
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]
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>
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
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>
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>
Se hai attivato il plugin Yoast SEO sul tuo sito WordPress, puoi utilizzarlo per modificare il file .htaccess direttamente dalla Bacheca:
Adesso che sei qui, segui questi passaggi:
Nell’immagine puoi vedere come nel menu delle opzioni ci siano molte più voci rispetto a prima. A questo punto per procedere:
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!
Quando si tratta di costruire un sito web ci sono due aspetti che devono lavorare…
Torniamo a parlare di plugin da aggiornare. Stavolta la situazione coinvolge quattro milioni di siti…
L'Errore 400, conosciuto anche come "Bad Request", è un codice di stato HTTP che indica…
Nel mese di novembre che ormai si avvia a conclusione è stato rilasciato da parte…
La posta elettronica è uno strumento ormai imprescindibile in qualunque strategia di marketing ma configurare…
Su internet si trova di tutto e tu stai cercando idee per i tuoi contenuti.…