fbpx
htaccess WordPress come modificare il file htaccess
Tabella dei Contenuti

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

htaccess WordPress come modificare il file htaccess

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.

A cosa serve il file .htaccess su WordPress

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: 

  • redirect html di base (ad esempio in caso di errore 404),
  • blocco dell’accesso a file specifici,
  • impostazione di una password per proteggere il contenuto e
  • disattivazione dell’hotlinking.

Esegui sempre il backup prima di modificare il file .htaccess di WordPress

Esegui sempre il back up prima di modificare il file .htaccess di WordPress

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:

  1. accedi al cPanel,
  2. poi vai su Files e
  3. poi seleziona File Manager.
  4. Nel pop up delle Preferenze, metti la spunta sull’opzione per mostrare i file nascosti e poi conferma salvando. In questo modo, quando accederai alla cartella radice del sito, potrai vedere il file.
  5. Cliccaci sopra, poi seleziona l’opzione per scaricarlo e salvalo sul tuo computer:
    • Se dovessi aver bisogno di sostituirlo in caso di errore, dovrai solo cliccare sul bottone Carica e mettere la spunta su quella per sovrascrivere i file esistenti.
    • Potrai a quel punto selezionare il file e aprire la tua copia locale per caricarla nella directory e tornare al File Manager.

Come creare un file .htaccess 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:

  1. il primo numero si riferisce all’accesso concesso all’utente;
  2. il secondo al gruppo;
  3. il terzo al resto del mondo.

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.

Come effettuare cambiamenti al file .htaccess di WordPress

Come effettuare cambiamenti al file htaccess di WordPress

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

  1. Una volta effettuato l’accesso a cPanel, vai su File > File Manager e scegli di visualizzare i file nascosti, come abbiamo visto prima.
  2. Vai nella directory radice del sito e clicca sul file .htaccess, poi seleziona Modifica.
  3. Effettua la prima modifica e poi clicca su Salva prima di uscire, altrimenti tutti i cambiamenti andranno perduti.

Indipendentemente dal metodo scelto, ricaricare il sito dopo ciascuna modifica ti permette di controllare che il sito funzioni correttamente:

  • Se dovessi riscontrare problemi, ripristina subito il file .htaccess originale e prova di nuovo. Ti ho consigliato di effettuare il backup del sito e di salvare una copia locale del file proprio per questa ragione.
  • Se, invece, il sito funziona correttamente, puoi procedere con la modifica successiva.

Vediamo adesso qualche esempio di regole che possiamo applicare tramite il file .htaccess.

1. Prevenire l’hotlinking delle immagini

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]
htaccess WordPress

2. Impedire di scoprire il nome utente

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]

3. Restringere l’accesso alla sezione Admin

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:

  1. il percorso del sito con quello che usi,
  2. il dominio con quello del tuo sito e
  3. gli IP con i vari che vuoi abilitare.

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.

4. Proteggere il sito da aggiunte di codice

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]

5. Proteggere i file importanti

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>

6. Escludere le directory dalla navigazione

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

7. Impedire l’accesso ai file PHP e la loro esecuzione

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>

8. Proteggere la directory wp-includes

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>

Modificare il file .htaccess di WordPress usando Yoast SEO

editare il file robots.txt utilizzando Yoast SEO tramite la bacheca di WordPress

Se hai attivato il plugin Yoast SEO sul tuo sito WordPress, puoi utilizzarlo per modificare il file .htaccess direttamente dalla Bacheca:

  1. Clicca sul menu SEO che vedi nella barra laterale di WordPress.
  2. Se l’opzione Strumenti non viene mostrata, clicca su SEO per visualizzare il menu.
  3. Poi clicca su Bacheca e, infine,
  4. apri la scheda Funzionalità e ti si aprirà una finestra come quella che vedi qui sotto.
htaccess WordPress come editarlo con Yoast SEO
editare il file robots.txt utilizzando Yoast SEO - menu strumenti

Adesso che sei qui, segui questi passaggi:

  1. Abilita l’opzione Pagine delle impostazioni avanzate, 
  2. poi conferma cliccando su Save changes.
  3. Adesso dovresti vedere molte più opzioni disponibili nel menu SEO.

Nell’immagine puoi vedere come nel menu delle opzioni ci siano molte più voci rispetto a prima. A questo punto per procedere:

  1. Clicca su Strumenti e ti si aprirà una pagina come quella che vedi qui sotto.
  2. Clicca sulla terza voce: Modifica file.
Modificare file htaccess con Yoast SEO

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!

Ti potrebbe interessare anche

18 Responses

  1. Ciao, ho provato ad aggiungere la regole per impendire di visualizzare gli user ma non funziona. Specifico che le regole wordpress del mio htaccess contengono anche questa stringa: RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    Non so se dipende da questo.

    Inoltre a questo punto non so se le altre regole funzionano oppure no, come si può verificare?

    1. Ciao Claudio, ti consigliamo di contattare il nostro servizio di Assistenza WordPress per verificare le tue impostazioni e aiutarti a configurare il tuo file htaccess in base alle tue esigenze. Un saluto!

  2. Ciao, post molto interessante, però ho un dubbio e non capisco se nel testo è presente un errore o se sono io che non colgo il giusto passaggio della vostra spiegazione.

    Nella sezione “come creare un .htaccess su wordpress” inizialmente si dice che “è importante impostare un livello di permesso 644”.
    Nel paragrafo successivo poi si dice che “l’impostazione consigliata per il file .htaccess è 604 perchè WordPress ha bisogno di accedervi in modo da poterlo aggiornare automaticamente”.

    Quindi sono andato investigare sull’argomento e in effetti entrambi i permessi sembrerebbero adatti allo scopo. Però pur intendendo la differenza tra i due, non capisco in quale situazione sia meglio il 644 e in quale il 604.

    Potreste cortesemente aiutarmi a capire? Grazie e buon lavoro!

  3. Ottimo post, ma non funziona la direttiva per impedire di scoprire il nome utente ne in locale ne in remoto. C’è qualche soluzione?

  4. Salve, da premettere che nel caso del mio blog è già presente nella web root il file .htaccess, con le impostazioni di default. Altrove ho letto che c’è la possibilità di attivare una compressione dei file in modo da velocizzare wordpress. Di seguito il codice:

    ***

    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

    Header append Vary User-Agent env=!dont-vary

    AddOutputFilterByType DEFLATE text/css application/x-javascript text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon

    ***

    Prima di modificare il file, vorrei sapere se il codice proposto è ok.

    Grazie in anticipo

    1. Ciao, può andare bene, previo backup puoi inserirlo nel tuo file .htaccess. Un saluto e buona velocizzazione!

  5. Buongiorno Andrea,
    dovrei aumentare lo spazio di upload dei file su wordpress; il limte che mi impone il sito è di 30MB, ho parlato col provider che mi ha fatto aggiungere " define( 'WP_MEMORY_LIMIT', '256M' );" all'interno di wp-confg.
    purtroppo lo spazio non è aumentato, devo forse modificare l’htaccess? e se si dove vanno inserite all’interno del codice le seguenti righe?

    php_value upload_max_filesize 128M
    php_value post_max_size 128M
    php_value memory_limit 256M
    php_value max_execution_time 300
    php_value max_input_time 300

    1. Ciao Simone, aggiungilo in fondo al file. In alternativa, potresti anche inserire tali valori nel file functions.php:
      @ini_set( ‘upload_max_size’ , ’64M’ );
      @ini_set( ‘post_max_size’, ’64M’);
      @ini_set( ‘max_execution_time’, ‘300’ );

  6. Scusa il ritardo della mia risposta, ma ho visto il post soltanto oggi.
    Mi riferisco al semplice html. Come ho scritto, sono una autodidatta, ho imparato le poche cose che so scrivere girando nel web. Non sono così pratica da creare e/o manipolare stringhe di codici.
    Per il momento sto aprendo tutte le pagine del sito per cambiare tutti gli http in https. Non so se mi basterà una vita perchè credevo meno, ma sono molto più di 25.000.
    Cosa intendi per optare per WordPress?
    Grazie per l’attenzione e buona giornata,

    1. Lavorare con il “semplice” HTML ti limita molto, oggi il web usa un codice dinamico che permette di ottimizzare la visualizzazione e migliorare l’user experience degli utenti. In questo senso, il linguaggio PHP da una grande mano e ha permesso la creazione di uno strumento come WordPress. Con “optare per WordPress”, intendiamo testarlo, provarlo e verificare se può essere più vantaggioso il suo utilizzo, piuttosto che rimanere confinati dentro il linguaggio HTML. In ogni caso, grazie a te per il commento e buona giornata!

Lascia un commento

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

Cosa stai cercando?

Chiamaci ora!

Hai bisogno di una mano? Il nostro team è pronto ad ascoltarti e a trovare la soluzione su misura per te. Clicca qui sotto e chiamaci per un preventivo gratuito:

Richiedi SOS-CheckUp Base Gratis

Qual è lo stato di salute del tuo sito WordPress?

Anche se tutto sembra funzionare sul tuo sito WordPress, potrebbero esserci dei problemi nascosti da risolvere immediatamente

Richiedi subito un check-up gratuito per scoprire quali sono i pericoli invisibili

Gestione cookie