Come configurare al meglio il file htaccess in WordPress

Come configurare al meglio il file htaccess in Wordpress

Il file .htaccess su Apache HTTP Server è molto utile, la sua configurazione permette di migliorare alcuni aspetti legati alla sicurezza e alla personalizzazione del comportamento del server web.

Viene creato in una cartella specifica e, consente, ad esempio, tra le tante cose, di attivare l’autenticazione con user e password, attivare redirect e Url rewriting. Approfondiamo meglio l’argomento e vediamo anche come inserire alcune configurazioni particolarmente utili.

Cos’è il file htaccess?

Il file .htaccess è un file di configurazione utilizzato in tutti i server web che usano Apache. Caricato in una directory, viene poi rilevato ed eseguito.

Dopo essere entrato in funzione, impartisce direttive all’interno della directory e nelle sue sub-directory.

Se nelle sottocartelle sono stati creati altri file .htaccess, vengono ereditate le direttive del file .htaccess della cartella principale ma, è possibile utilizzare quelle nelle sub-cartelle per annullarne alcune, modificarle o alternarle.

Con il file .htaccess si possono abilitare e disabilitare funzioni aggiuntive offerte dal software del server web Apache.

Come anticipato, si possono abilitare funzionalità di redirect, di rewriting URL, di protezione con password su singole pagine, ma anche di inserimento di messaggi d’errore personalizzati, di blocco di accesso e tanto altro.

È importante ricordare che per poter utilizzare il file .htaccess bisogna acquistare il servizio di hosting per il sito web con server Linux.

Il server Windows non può essere usato con Apache ma con IIS che non rileva questo file.

Htaccess e WordPress

WordPress utilizza il file htaccess. Dopo l’installazione del CMS, all’interno della directory radice, si trova un file .htaccess già preconfigurato, di seguito riportiamo il contenuto:

# 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

Con questo codice, la configurazione permette di gestire i permalink di WordPress. Le regole indicano che quando il file index.php viene direttamente richiamato, non deve verificarsi il rewriting; sono esclusi i file e le directory che esistono realmente sul file system lato server e che l’indirizzo deve venir riscritto facendo leva su index.php.

Vediamo alcune configurazioni interessanti che puoi aggiungere nel file htaccess di WordPress.

Inserire nome utente e password per proteggere l’amministrazione di WordPress

La pagina dell’area amministrativa di WordPress richiede già l’accesso con nome utente e password, tuttavia, di default, qualsiasi utente può accedere all’interno contenuto della cartella wp-admin.

Oltre ad aggiornare sempre WordPress all’ultima versione disponibile, è possibile impedire l’accesso via file system al contenuto della cartella di amministrazione, per ridurre i rischi sui file coinvolti su tutte le operazioni di scrittura del database, impendendo l’accesso pubblico.

È necessario creare un file .htaccess in una sottocartella di wp-admin e scrivere:

AuthType Basic

AuthName “Area amministrativa”

AuthUserFile /urlserverweb/wp-admin/.htpasswd

require valid-user

Sostituire “urlserverweb” con il percorso completo che varia a seconda del servizio di hosting o della configurazione server dedicato/cloud in uso.

In contemporanea, è necessario creare un file .htpasswd all’interno della cartella wp-admin, in cui inserire i dati per l’autenticazione.

Impedire la lettura del nome degli utenti

Alcuni malintenzionati cercano di estrapolare da WordPress l’elenco dei nomi utente degli autori degli articoli.

Questi dati vengono richiesti per effettuare attacchi brute force con l’obiettivo di ottenere le password di ogni utente.

È possibile negare questa possibilità, aggiungendo al file .htaccess:

RewriteCond %{QUERY_STRING} author=d

RewriteRule ^ /? [L,R=301]

Impedire l’hotlinking delle immagini

Attraverso l’inserimento di un codice è possibile evitare che dei webmaster o altri utenti, usino le immagini pubblicate sul sito, basta aggiungere al file .htaccess quanto segue:

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

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

RewriteRule \.(jpe?g?|png|gif|ico|pdf|flv|swf|gz)$ – [NC,F,L]

Ovviamente, al posto di nomesitoweb.com, bisognerà inserire il nome a dominio del proprio sito.

Bloccare l’accesso diretto a temi e plugin

Bisogna sempre aggiornare temi e plugin in modo da evitare possibili falle di sicurezza che, possono essere sfruttate da malintenzionati per sferrare attacchi.

Per bloccare l’accesso a temi e plugin bisogna inserire nel file .htaccess, le seguenti istruzioni:

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]

Proteggere i file nella cartella wp-includes

La cartella wp-includes contiene i componenti Core di WordPress, indispensabili affinché il CMS funzioni alla perfezione.

Per questo motivo è importante proteggerla anche tramite file htaccess, aggiungendo la seguente regola:

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

Creare pagine di errore personalizzate

Le istruzioni riportate di seguito permettono di creare delle pagine di errore personalizzate quando si verificano gli errori 403, 404 e 500:

ErrorDocument 403 /custom-403.html

ErrorDocument 404 /custom-404.html

ErrorDocument 500 /custom-500.html

Attivare la modalità manutenzione su WordPress

Un’altra funzione molto utile da attivare sul sito è quella della modalità manutenzione. Aggiungendo queste specifiche direttive, verrà mostrata la pagina manutenzione.html a tutti gli utenti che visiteranno il sito.

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123

RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]

RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]

RewriteRule .* /maintenance.html [R=503,L]

</IfModule>

Impostare redirect permanenti verso il nuovo URL

In alcuni casi può essere necessario indicare al server web l’operazione dei reindirizzamenti permanenti (301) dall’URL vecchio a quello nuovo.

Per poterlo fare, bisogna inserire nel file Htaccess:

Redirect 301 /vecchioURL1/ http://www.nomedelsito.com/nuovoURL1

Redirect 301 /vecchioURL2/ http://www.nomedelsito.com/nuovoURL2

Attivare caching delle immagini e di altre risorse statiche

Per caricare e visualizzare più velocemente il contenuto di un sito WordPress è consigliato attivare il caching delle immagini e di qualunque altra risorsa statica presente nelle pagine.

Impostando il codice sottostante, si eviterà che questi elementi vengano caricati nuovamente durante le visite successive.

<IfModule mod_expires.c>

ExpiresActive On

ExpiresByType image/jpg “access 1 year”

ExpiresByType image/jpeg “access 1 year”

ExpiresByType image/gif “access 1 year”

ExpiresByType image/png “access 1 year”

ExpiresByType text/css “access 1 month”

ExpiresByType application/pdf “access 1 month”

ExpiresByType text/x-javascript “access 1 month”

ExpiresByType application/x-shockwave-flash “access 1 month”

ExpiresByType image/x-icon “access 1 year”

ExpiresDefault “access 2 days”

</IfModule>

Queste sono solo alcune delle configurazioni che è possibile gestire con WordPress tramite il file .htaccess.

Importante!

Ti consigliamo di non effettuare modifiche al file htaccess e alle cartelle di WordPress se sei totalmente inesperto, perché potresti compromettere il funzionamento dell’intero sito web.

Prima di ogni modifica ricordati di effettuare sempre un backup dei file originali!


Lascia un commento

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