Un nostro lettore ci ha recentemente chiesto se è possibile impedire a WordPress di sovrascrivere il codice personalizzato nel file .htaccess. Si tratta di una preoccupazione comune, poiché WordPress e vari plugin aggiungono spesso le proprie impostazioni a questo file di configurazione.
Se avete aggiunto del codice personalizzato a .htaccess, è comprensibile che vi preoccupiate che venga sovrascritto o eliminato. Mantenere questo codice al sicuro evita di compromettere le prestazioni e la sicurezza del sito.
In questo articolo vi guideremo attraverso i passaggi per impedire a WordPress di sovrascrivere il file .htaccess. Seguendo queste istruzioni, potrete proteggere il vostro codice personalizzato e garantire che il vostro sito web funzioni senza interferenze.
Perché WordPress sovrascrive il file .htaccess?
Il file .htaccess è un potente file di configurazione che memorizza importanti impostazioni relative al vostro sito WordPress. Contiene regole che indicano al server di hosting come gestire il vostro sito.
WordPress utilizza il file .htaccess per memorizzare le impostazioni dei permalink. Ogni volta che si modificano o rigenerano i permalink, WordPress sovrascrive automaticamente le vecchie impostazioni in .htaccess con le nuove.
Anche alcuni plugin di WordPress salvano le loro impostazioni in .htaccess. Ad esempio, il plugin W3 Total Cache modificherà il file .htaccess per configurare gli strumenti di caching e ottimizzazione che fanno parte del plugin.
Infine, è possibile apportare modifiche personalizzate a .htacess per controllare il funzionamento del sito. Ad esempio, è possibile aggiungere al file regole personalizzate per proteggere l’area di amministrazione, tenere il sito al sicuro dagli hacker, impostare reindirizzamenti, vietare indirizzi IP sospetti e altro ancora.
Alcuni utenti temono che se aggiungono le proprie regole personalizzate a .htaccess, queste possano essere cancellate quando WordPress sovrascrive il file con le nuove impostazioni. Altri utenti preferiscono configurare manualmente .htaccess e non lasciare che WordPress vi scriva affatto.
Detto questo, vediamo come impedire a WordPress di sovrascrivere il vostro file .htaccess. Utilizzate i collegamenti rapidi qui sotto per passare alla sezione che vi interessa:
Come impedire a WordPress di sovrascrivere le regole .htaccess
La buona notizia è che se si comprende il funzionamento del file .htaccess, si può essere certi che le regole personalizzate non verranno sovrascritte.
Questo perché le aree del file che verranno modificate da WordPress o dai vostri plugin sono chiaramente indicate. Assicuratevi semplicemente di non aggiungere codice in quelle aree.
Non modificate il codice all’interno dei marcatori di WordPress
Come abbiamo detto in precedenza, WordPress utilizza .htaccess per memorizzare le impostazioni di una struttura URL SEO-friendly. Il codice che salva nel file verrà automaticamente sovrascritto e aggiornato ogni volta che si modificano le impostazioni dei permalink.
Come si può vedere nella schermata sottostante, WordPress salva queste informazioni tra due marcatori, # BEGIN WordPress
e # END WordPress
.
Notate l’avvertenza all’interno di questi indicatori:
Le direttive (linee) tra “BEGIN WordPress” e “END WordPress” sono generate dinamicamente e devono essere modificate solo tramite i filtri di WordPress. Qualsiasi modifica alle direttive tra questi marcatori sarà sovrascritta.
Ciò significa che WordPress non sovrascriverà o modificherà il codice aggiunto al di fuori di questi marcatori. In genere gli utenti aggiungono il codice personalizzato all’inizio del file, sopra il marcatore # BEGIN WordPress
.
Suggerimento:.htaccess è un file nascosto situato nella cartella principale del vostro sito WordPress. Se avete difficoltà a trovarlo, date un’occhiata alla nostra guida sul perché non riuscite a trovare il file .htaccess sul vostro sito WordPress.
Non modificate il codice all’interno dei marcatori dei vostri plugin
Quando un plugin salva le sue impostazioni in .htaccess, le inserisce anche tra marcatori simili a # BEGIN Plugin
e # END Plugin
.
Ad esempio, se installate e configurate il plugin W3 Total Cache per migliorare la velocità e le prestazioni del vostro sito web, aggiungerà regole a .htaccess tra i marcatori # BEGIN W3TC Browser Cache
e # END W3TC Browser Cache
.
Queste regole saranno sovrascritte ogni volta che si modificano le impostazioni del plugin, quindi bisogna fare attenzione a non aggiungere regole .htaccess personalizzate tra questi marcatori.
Creare marcatori per il codice personalizzato
In rari casi, un plugin che si comporta male può modificare il codice al di fuori dei suoi marcatori # BEGIN
e # END
. Tuttavia, normalmente non modificherà il codice che si trova tra i marcatori usati da WordPress o da altri plugin.
Se si teme che un plugin mal funzionante possa sovrascrivere il codice, è possibile aggiungere i propri marcatori al file .htaccess.
Ad esempio, è possibile digitare i marcatori # BEGIN MyCustomCode
e # END MyCustomCode
all’inizio del file .htaccess e poi aggiungere le proprie regole personalizzate tra questi marcatori.
Se è necessario aggiungere del codice alla fine di .htaccess, è possibile aggiungere un’altra serie di marcatori. Assicuratevi solo di dare loro nomi diversi. Ad esempio, si può usare ‘MyCustomCodeTop’ e ‘MyCustomCodeBottom’.
Come impedire a WordPress di modificare .htaccess
Ora che avete capito come funziona .htaccess, potete essere certi che il vostro codice personalizzato non verrà sovrascritto da WordPress o dai vostri plugin.
Tuttavia, alcuni sviluppatori e utenti avanzati vogliono impedire a WordPress di apportare modifiche a .htaccess.
Ad esempio, potreste voler creare i permalink digitando manualmente le impostazioni in .htaccess. In questo caso, vorrete evitare conflitti impedendo a WordPress di salvare le proprie impostazioni permalink nel file.
Si sconsiglia questa operazione, a meno che non si sappia cosa si sta facendo, perché può portare a conseguenze inaspettate. Tuttavia, è possibile modificare i permessi del file o utilizzare del codice.
Impedire a WordPress di modificare .htaccess utilizzando i permessi dei file
Un modo per impedire a WordPress di modificare .htaccess è quello di rendere il file di sola lettura. Per farlo, è necessario modificare i permessi del file utilizzando un client FTP o il file manager fornito dal vostro provider di hosting WordPress.
Il file .htaccess si trova nella directory principale dell’installazione di WordPress. Quindi, fate clic con il tasto destro del mouse sul file e selezionate “Autorizzazioni file”.
Viene visualizzata una finestra a comparsa in cui è possibile modificare gli attributi del file.
L’impostazione predefinita sarà 644, ma è possibile modificarla in 444 digitando direttamente nel campo “Valore numerico” o assicurandosi che siano selezionate solo le caselle “Lettura”.
Una volta fatto clic sul pulsante “OK”, il file sarà di sola lettura e non potrà essere modificato.
Naturalmente, ciò significa che non è possibile scrivere sul file. Quando si desidera apportare modifiche, è necessario reimpostare temporaneamente i permessi del file a 644.
Interrompere la modifica di .htaccess da parte di WordPress utilizzando il codice
Un’altra soluzione consiste nell’utilizzare uno snippet di codice che consenta a WordPress di non scrivere nel file .htaccess. Questo è utile se volete impedire a WordPress di modificare .htaccess senza bloccare i vostri plugin.
Nota: la modifica di qualsiasi file centrale di WordPress può essere pericolosa. Anche un piccolo errore può causare gravi errori sul vostro sito. Ecco perché consigliamo questo metodo solo agli utenti esperti.
È sufficiente aggiungere il seguente frammento di codice alla fine del file wp-config.php. Se avete bisogno di aiuto, consultate la nostra guida su come modificare il file wp-config.php in WordPress:
add_filter('got_rewrite', '__return_false');
Una volta fatto questo, WordPress non scriverà più nel file .htaccess.
Messaggio di errore visualizzato quando WordPress non può modificare .htaccess
Se si cerca di modificare le impostazioni dei permalink quando .htaccess è impostato in sola lettura, verrà visualizzato un messaggio di errore.
Nella parte superiore della pagina Impostazioni ” Permalinks, viene visualizzato il messaggio “È necessario aggiornare il file .htaccess”.
Ciò consente di sapere che WordPress non è riuscito a modificare il file .htaccess.
Normalmente, questo è ciò che si intende fare. Tuttavia, se si desidera aggiungere le impostazioni dei permalink di WordPress a .htaccess, è necessario farlo manualmente.
In fondo alla pagina Impostazioni “ Permalinks, verrà visualizzato un altro messaggio di errore che indica che il file .htaccess non è scrivibile. Al di sotto di questo, verranno visualizzate le regole da aggiungere a .htaccess.
Se si desidera aggiungere queste impostazioni, è necessario modificare temporaneamente i permessi del file .htaccess a 644, in modo da poterlo modificare. Dopodiché, si dovranno incollare le regole tra i marcatori WordPress BEGIN e END del file, sostituendo il codice già presente.
Al termine, è sufficiente impostare nuovamente il valore su 444 e salvare il file. Il file sarà nuovamente non scrivibile.
Guide di esperti su .htaccess in WordPress
Speriamo che questo tutorial vi abbia aiutato a capire come impedire a WordPress di sovrascrivere il file .htaccess. Potreste anche voler consultare altre guide relative al file .htaccess:
- Glossario: .htaccess
- Come correggere il file .htaccess di WordPress (Guida per principianti)
- I trucchi .htaccess più utili per WordPress
- Perché non riuscite a trovare il file .htaccess sul vostro sito WordPress?
- Come aggiungere intestazioni di sicurezza HTTP in WordPress (Guida per principianti)
- Come aggiungere le intestazioni Expires in WordPress
- Guida per principianti alla risoluzione degli errori di WordPress (passo dopo passo)
Se questo articolo vi è piaciuto, iscrivetevi al nostro canale YouTube per le esercitazioni video su WordPress. Potete trovarci anche su Twitter e Facebook.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Jiří Vaněk
This was one of the first articles on WPBeginner when I deliberately searched for why a customer’s .htaccess was being overwritten. Now we know it, understand it, and also write .htaccess correctly. Many thanks for understanding the reason.
WPBeginner Support
Glad our guide could help!
Admin