.htaccess e WordPress: come modificarlo + codici utili

Modificabile a piacimento usando un editor di testo, il file .htaccess per WordPress, letto dal server Apache, spesso viene usato poco ma può davvero migliorare in maniera significativa le prestazioni e la sicurezza del sito.

La prima cosa da sapere è che il punto che si trova all’inizio del nome non indica un’estensione ma il nome del programma, il quale non viene mostrato nel momento in cui si scorrono le cartelle dal proprio pc, salvo che sia stata abilitata la funzione per vedere anche i file nascosti.

Effettuando le opportune modifiche sul file .htaccess sarà possibile aggiungere regole speciali per rendere la cache maggiormente efficiente, aumentare la dimensione massima del caricamento, impostare redirect automatici e indirizzare HTTP su HTTPS.

Questo importante file si trova all’interno della cartella root principale, ovvero nella directory WordPress. Vediamo come quando si possono apportare tutte le necessarie modifiche e ogni altra utile informazione.

Quando deve essere modificato?

In tante situazioni si presenta l’esigenza di cambiare le impostazioni del file .htaccess. Modificando opportunamente alcuni parametri, infatti, si riesce a rendere il sito più performante, evitando così l’installazione di plug in e di operare direttamente sul data base di WordPress.

Più nello specifico, il file .htaccess andrà modificato quando occorre configurare il caching del browser, impedire l’accesso a terze parti per una maggiore sicurezza del sito, creare un’area protetta, abilitare la compressione dei programmi, impostare i redirect e bloccare spam che provengono da uno specifico IP. Operando determinate modifiche si possono anche prevenire hotlinking.

Bisogna considerare che le modifiche del file .htaccess si rifletteranno su tutta la root e le sotto cartelle. L’importante è capire come eseguire le impostazioni senza commettere errori. In seguito, una volta acquisita una certa dimestichezza, si potranno effettuare cambiamenti sempre più complessi e mirati.

È una modifica difficile da fare?

Cambiare le impostazioni del file .htaccess non è così complicato come si potrebbe pensare. In ogni caso le modifiche andranno a riflettersi sul funzionamento del server Apache, quindi è bene prestare la massima attenzione. Per questo si consiglia sempre di eseguire il backup del file .htaccess originale, così da avere sempre la possibilità di ripristinare le impostazioni iniziali.

Anche il più piccolo errore di sintassi, come ad esempio l’aggiunta di uno spazio vuoto o di una virgola che non dovrebbero essere presenti, andranno a generare il malfunzionamento del server e di conseguenza del sito. Finite le modifiche è fondamentale eseguire un controllo accurato per verificare che tutto proceda senza intoppi.

Prima di cominciare si raccomanda di annotare la configurazione di base del file, ovvero:

# BEGIN WordPress

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

# END WordPress

In questo modo, qualora si dovessero presentare problemi, sarà sempre possibile tornare indietro e correggere le modifiche errate.

Redirect 301 con htaccess

Il Redirect 301, altrimenti noto come spostamento permanente, è di fondamentale importanza perché grazie a questo processo si può reindirizzare un URL verso un’altro. Un consulente SEO sa molto bene che nel momento in cui si modificano le strutture delle URL bisogna inevitabilmente incrementare i redirect 301.

Solo in questa maniera si evita l’errore 404 che viene restituito quando la risorsa non esiste, ma non solo. Verranno meno anche i problemi legati agli eventuali backlinks che puntano verso le vecchie URL e quindi non si rischia di perdere il traffico.

Quando si presenta la necessità di indirizzare in maniera definitiva le richieste di un vecchio dominio verso uno nuovo, la regola corretta da inserire nella root è questa:

RewriteEngine on

RewriteRule (.*) http://www.nuovodominio.com/$1 [R=301,L]

Se invece si deve reindirizzare un vecchio URL in uno nuovo si dovrà adottare questa istruzione:

RewriteEngine on

Redirect 301 /vecchio-url.html http://www.dominio.it/nuovo-url.html

Così facendo ogni volta che il client richiede il precedente file, questo sarà automaticamente dirottato nel nuovo url.html.

Naturalmente occorre sempre testare l’effettivo funzionamento di questi codici che, per poter funzionare senza problemi, potrebbero richiedere ulteriori modifiche che interessano il proprio file .htaccess oppure la configurazione stessa del server.

In genere si consiglia di non copiare direttamente i codici nel proprio file .htaccess ma è preferibile scrivere prima su un documento di testo in modo da rimuovere eventuali formattazioni che potrebbero generare errori.

Modificare htaccess da FTP/SFTP o tramite WordPress

Abbiamo visto che il proprio file .htaccess è collocato nella directory principale di WordPress, proprio dove si trovano i file “wp-config.php”, oltre alle cartelle “wp-admin” e “wp-content”. Per poter apportare le modifiche è necessario connettersi al sito seguendo due opzioni, ovvero tramite FTP oppure sfruttando il File Manager che si trova integrato nel cPanel dell’hosting.

Per poter accedere tramite FTP allo spazio web occorre scaricare un apposito file, come ade sempio “FileZilla”. Finito il download non resta che inserire i dati forniti dall’hosting e cliccare su connessione rapida. A questo punto sarà possibile individuare il file .htaccess all’interno della directory principale, ma prima di eseguire le modifiche si raccomanda di eseguire il backup. Inoltre bisogna sempre lasciare il nome del file in originale, senza dimenticare di mettere il punto, perché altrimenti verranno generati errori.

Sono diverse le impostazioni che si possono modificare, a partire dalla pagina di default del sito. Si potrà anche agire sulle pagine di errore personalizzate, sui permessi che riguardano le singole cartelle e sui blocchi che provengono da un preciso IP.

Chi, invece, decide di eseguire l’accesso a cPannel dovrà andare su File, File Manager e visualizzare i contenuti nascosti. All’interno della directory occorre cliccare sul file .htaccess, per poi selezionare la voce modifica. Effettuata la prima non bisogna dimenticare di salvare prima di uscire, altrimenti tutti cambiamenti non verranno memorizzati.

A prescindere dal metodo che viene scelto, ricaricando il sito si potrà controllare il regolare funzionamento. Qualora dovessero presentarsi delle criticità è sempre meglio ripristinare il file .htaccess originale e provare nuovamente a inserire i codici. Quando il sito non da problemi si può passare alla modifica successiva.

Le regole da applicare sono diverse, scopriam quelle più importanti.

1. Ad esempio, per prevenire possibili hotlinking delle immagini, il codice da agiungere è:

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. Per impedire di rendere noto il nome utente può essere aggiunta quest’altra regola:

RewriteCond %{QUERY_STRING} author=d

RewriteRule ^ /? [L,R=301]

In questa maniera l’utente potrà identificare i nomi che vengono usati da chi posta commenti su sito.

3. Per poter limitare l’accesso alla sezione Admin quando viene usato un IP statico il codice è:

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

Così facendo gli indirizzi IP che non sono autorizzati verranno mandati alla pagina di errore 404. Bisogna comunque ricordare di sostituire il precedente percorso con quello del sito usato, oltre che degli IP che hanno ricevuto l’abilitazione. Quando poi gli utenti dispongono di IP dinamici si può scrivere 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>

che servirà a bloccare l’accesso alla bacheca Admin. Gli hacker possono sempre tentare di indovinare in modo manuale le credenziali dei singoli utenti, ma non potranno impiegare i bot e ciò riduce drasticamente il rischio di intrusioni indesiderate.

4. Esiste anche una regola che permette di proteggere i file più importanti, in modo che venga impedito l’accesso dall’esterno, ovvero:

<FilesMatch "^.*(error_log|wp-config.php|php.ini|.[hH][tT][aApP].*)$">

Order deny,allow

Deny from all

</FilesMatch>

In questo caso bisogna controllare attentamente il file php.ini del sito, perché diversamente si verificheranno inevitabili malfunzionamenti.

5. Coloro che desiderano proteggere il sito da eventuali aggiunte di codici potranno affidarsi a questa regola:

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]

6. Per escludere le directory dalla navigazione, evitando così di facilitare l’operato dei malintenzionati, basta inserire:

Options All -Indexes

7. Per proteggere i file PHP e la loro esecuzione si può usare il 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]

Perché il file htaccess è così importante?

Quando si apportano le necessarie modifiche al file .htaccess si migliorano le prestazioni del sito ad ampio raggio. In definitiva il portale risulterà infatti maggiormente sicuro e veloce, quindi protetto da possibili intrusioni esterne.

Le speciali regole, da inserire in maniera corretta, salvare e testare, permettono al server di funzionare in un determinato modo per impedire intrusioni e rendere il funzionamento più efficiente.

Si ricorda che di default, ogni sito WordPress impiega il file .htaccess che non garantiscono molte funzionalità, per inserire quelle aggiuntive occorre procedere con la massima cautela, in modo da non generare malfunzionamenti che si ripercuoteranno su tutte le cartelle.

Reindirizzamenti, funzioni di sicurezza, blocco IP, protezione nome utente o istruzioni di caching seguono sempre una precisa sintassi. Del resto anche una semplice svista in fase di digitazione dell’istruzione può compromettere le funzionalità. Ecco perché non bisogna mai dimenticare di eseguire il preventivo backup.

Michele Sabatini
Informazioni su Michele Sabatini

Ciao! Sono un Consulente SEO da 7 anni ormai per professione, amo tutto quello che riguarda il mondo del Digital e lo studio dei dati. Realizzo siti web con ogni tipologia di CMS, per questo è nata l'esigenza di creare questo portale: recensire nel miglior modo possibile servizi di hosting e strumenti di marketing online, così da poterti aiutare sotto ogni punto di vista.

Articoli Correlati

NoFollow: Cos’è e Come Utilizzarlo nella SEO

Nofollow è una dicitura che viene spesso accostata ai link che troviamo all’interno di un testo posizionato su un sito Read more

4 Alternative a Semrush, quali sono le migliori [2021]
Alternative Migliori a Semrush

In questo articolo vedremo quali sono migliori alternative a Semrush, valutando diversi fattori come: funzionalità e costi. Ecco la classifica Read more

Keywords su WordPress: come inserirle ed a cosa servono
Keyword WordPress

Le keyword in una strategia SEO sono un aspetto molto importante. Nella guida di oggi vedremo come inserire le Keyword Read more