WordPress htaccess: cos’è, a cosa serve, come modificarlo | Marco Loprete

WordPress htaccess: cos’è, a cosa serve, come modificarlo

La schermata di Yoast SEO che permette di modificare il file htaccess per WordPress

Il file .htaccess di WordPress è uno degli elementi fondamentali del tuo sito web. In questa breve guida vedremo tutto ciò che ti serve sapere su questo importantissimo file: cos’è, a cosa serve, come modificarlo e per fare cosa.

Sei pronto? Iniziamo!

Cos’è il file .htaccess?

.htaccess è un file di configurazione che consente l’esecuzione del software Apache Web Server. Il file, caricato nella root directory (la directory principale) del sito, viene rilevato ed eseguito automaticamente.

Htacess sta per “hypertext access”. Come avrai notato, il nome del file comprende un puntino iniziale (.htaccess). Questo fa sì che il file sia nascosto, pertanto può essere visualizzato e modificato via file manager o FTP solo se è abilitata l’opzione per mostrare i file nascosti.

A cosa serve il file .htaccess per WordPress?

Il file .htaccess può essere utilizzato per modificare per abilitare / disabilitare funzionalità e caratteristiche aggiuntive che il software Apache Web Server ha da offrire. Queste funzionalità includono: i reindirizzamenti, alcune funzioni di sicurezza (blocco IP, protezione nome utente ecc.) e istruzioni di caching.  

Dove si trova il file .htaccess

Tramite il file manager del tuo hosting o via FTP accedi alle cartelle del sito. Il file .htaccess si trova nella root, la directory principale del sito, quella nella quale sono presenti anche le directory wp-admin, wp-includes, wp-content. Il file .htaccess è nascosto, quindi assicurati di aver abilitato l’opzione per mostrare i file nascosti.

La configurazione di base del file .htaccess per WordPress

E’ molto importante tenere presente la configurazione di base del file. In questo caso si potrà sempre tornare indietro in caso di modifiche errate.

# BEGIN WordPress 
RewriteEngine On 
RewriteBase / 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
# END WordPress 

Prima di andare a modificarlo, fai un backup. E’ importantissimo, perché una configurazione errata del file potrebbe “rompere” il tuo sito.

Modificare il file .htaccess

Proteggi file importanti

.htaccess è un valido alleato per aumentare la sicurezza del tuo sito. Puoi adoperarlo per impedire l’accesso ad alcuni file come per esempio il wp-config.php, il php.ini e l’error log.

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

Restringere l’accesso all’area admin

Puoi anche limitare l’accesso al pannello di controllo aggiungendo le seguenti regole (se usi un indirizzo IP statico):

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> 

In questo modo, gli IP non autorizzati sono reindirizzati su una pagina di errore 404. Rimpiazza la dicitura /path-to-your-site/ con il percorso del tuo sito web. Al posto di IP Address One, IP Address Two e IP Address Three inserisci gli indirizzi IP che vuoi abilitare. Puoi anche abilitarne uno solo (in tal caso, cancella le due righe successive).

Se hai un indirizzo IP dinamico, puoi adoperare questo codice:

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> 

Molti hacker utilizzano i bot per provare ad accedere al pannello di controllo di WordPress o per accedere esternamente. Aggiungendo questo snippet di codice al tuo file .htaccess, consentirai l’accesso solo alle persone che accedono manualmente al tuo sito tramite la barra degli indirizzi del loro browser.

Proteggere il tuo sito dal codice malevolo

Molti hacker provano a cambiare le variabili WordPress GLOBALS e _REQUEST nel tentativo di iniettare codice dannoso. Per impedirlo, puoi modificare il file .htaccess in questo modo:

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] 

Proteggere il tuo nome utente

Quando un visitatore inserisce your-site.com/?author=1 nella barra degli indirizzi, viene indirizzato alla pagina dell’autore che ha un ID utente pari a 1. La pagina dell’autore include il nome utente associato all’ID. A un hacker non resterebbe che trovare la password per avere accesso al tuo sito.

Per prevenire l’enumerazione del nome utente, inserisci questo codice:

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

Mettere al sicuro la directory wp-includes

La directory wp-includes ospita alcuni file fondamentali di WordPress. Bloccando tutti gli accessi non autorizzati, è possibile proteggere tutti i importanti da tentativi di manomissione da parte di hacker.

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

Forza l’uso del certificato SSL

Puoi utilizzare il codice seguente per forzare l’uso di un certificato SSL, a meno che non venga inserito il nome di dominio completo (FQDN) esatto elencato nella riga tre:

SSLOptions +StrictRequire
SSLRequireSSL
SSLRequire %{HTTP_HOST} eq "www.you-site.com"
ErrorDocument 403 https://www.your-site.com 

Previeni l’hotlinking

L’hotlinking si verifica quando si inserisce nel proprio sito web un’immagine non caricandola direttamente ma copiando e incollando il codice. Se qualcuno dovesse fare qualcosa del genere con una tua immagine, rischieresti di perdere banda e di vedere rallentato il tuo sito. Ecco come evitarlo:

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] 

Come sempre, modifica your-site.com con il tuo dominio e rimpiazza http://www.your-site.com/hotlink.gif con il percorso dell’immagine che vuoi proteggere.

Crea reindirizzamenti

Nel file .htaccess è possibile inserire i reindirizzamenti, che sono molto utili per la seo. Quando rimuovi un contenuto puoi reindirizzare il vecchio url sul nuovo scrivendo una semplice riga:

Redirect 301 /old-page-here/ http://www.your-site.com/new-page-here/ 

Modifica l’htaccess con Yoast SEO

Le modifiche che abbiamo visto sopra vanno fatte con un editor di testo direttamente sul file .htaccess. E’ possibile modificare lo stesso file dal pannello di controllo di WordPress tramite Yoast SEO, il popolarissimo plugin. In che modo?

Accedi al pannello di controllo di WordPress, vai su SEO > Strumenti > Modifica file. Nella schermata che si aprirà potrai modificare i file robots.txt (se ne hai uno) e l’.htaccess.

Spero che questo articolo ti sia stato utile. Se hai bisogno di più informazioni, consulta la mia guida a WordPress. Hai bisogno di un professionista? Sono esperto nella realizzazione di siti web. Richiedi un preventivo gratuito!

Lascia un commento

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