Il file .htaccess è un file nascosto che puoi utilizzare per modificare la configurazione dei web server Apache.
Si tratta di un file di testo con delle regole che ci permettono di impostare redirect, assicurarci che il sito sia raggiungibile via https e aumentare la sicurezza del nostro sito.
In questa guida vedremo come trovare il file .htaccess o crearlo manualmente quando necessario. Poi vedremo come modificarlo e quali sono le configurazioni più importanti.
Iniziamo!
Table of Contents
Cos’è il file .htaccess?
Il file .htaccess è un file di configurazione che ci permette di modificare informazioni o aggiungere opzioni.
Uno degli usi più comuni del file htaccess è quello di impostare i reindirizzamenti per alcuni URL. Ci sono, però, molti altri utilizzi come avremo modo di scoprire in questa guida.
Nella pratica l’htaccess è un semplice file di testo, ma la sua vera potenzialità è che ci permette di modificare la configurazione dei web server Apache.
Devi sapere, infatti, che ogni web server come Apache ha un suo file di configurazione. E, come avrai già capito, ogni file di configurazione ha le sue regole.
In questa guida vedremo come sfruttare al massimo questo file.
Iniziamo dalla base: dove trovo il file htaccess?
Dove si trova il file .htaccess
Per poter modificare il file htaccess, dobbiamo prima sapere come trovarlo.
Per prima cosa scegli come accedere ai file del tuo sito.
Puoi usare il gestore dei file che viene integrato nel pannello di controllo hosting, come per esempio quello di cPanel.
Oppure puoi collegarti via SFTP al server con un client come FileZilla.
In questo esempio vedremo la soluzione più rapida: usare il gestore dei file.
Ecco come fare.
- Effettua l’accesso a cPanel.
2. Clicca su “Gestione file“.
3. Apri la cartella “public_html“.
Nota che il file htaccess è sempre nella root, ma questa cartella può avere nomi diversi in base all’hosting. Altri nomi comuni sono: htdocs e www.
All’interno di questa cartella troverai il file .htaccess.
Ricorda che le regole inserite nel file htaccess hanno effetto su tutte le sottocartelle. Per questo motivo se vuoi usare le regole solo su una specifica sottocartella, potrai inserire il file htaccess all’interno di questa.
E se non vedi il file?
Vediamo come risolvere.
Come mostrare i file nascosti
I file come “.htaccess” sono file nascosti. Nei sistemi operativi Unix/Linux si utilizza un punto davanti al nome del file per nasconderlo.
Se non riesci a visualizzarlo, devi controllare che sia attiva l’opzione per visualizzare i file nascosti.
Vediamo come fare da:
- file manager di cPanel;
- FileZilla;
- Cyberduck;
- WinSCP.
Dal file manager di cPanel devi cliccare su Impostazioni, poi controllare che ci sia la spunta alla voce Mostra file nascosti (dotfiles) e infine cliccare su “Save“.
Da FileZilla clicca sul menu Server e spunta l’opzione Visualizza file nascosti.
Dopodiché conferma che vuoi attivare l’opzione tramite la finestra che compare.
Da Cyberduck clicca sul menu Visualizza e poi spunta l’opzione Visualizza file nascosti.
Da WinSCP clicca sulla voce in basso a destra “X nascosti” per attivare la visualizzazione di questi file.
Ora che abbiamo visto come trovare il file .htaccess, è il momento di passare a come modificarlo.
Il file htaccess di default di WordPress
Prima di procedere, se non riesci a trovare il file htaccess anche dopo aver attivato le opzioni per mostrare i file nascosti, è possibile che il file non sia stato creato.
In questo caso ci sono due alterative:
- far sì che WordPress generi un file htaccess;
- creare manualmente il file htaccess.
Vediamo come fare.
Generare il file htaccess con WordPress
Adesso ti mostro il metodo più rapido per creare un file htaccess con le informazioni di default.
Ti basta accedere a WordPress, cliccare su Impostazioni > Permalink.
E poi cliccare su “Salva le modifiche”.
In questo modo WordPress genererà in automatico il file htaccess.
Nota che se ci dovessero essere errori, vedrai comparire un avviso, in quel caso dovrai creare il file manualmente.
Creare il file htaccess manualmente
Creare il file htaccess per WordPress manualmente è altrettanto semplice.
Ci basta accedere ai file del sito, per esempio dal file manager e aprire la cartella in cui vogliamo creare il file. Nella maggior parte dei casi la cartella sarà “public_html”, come abbiamo visto prima.
A questo punto ci basta cliccare su “+File“.
Quindi dobbiamo inserire il nome del file: .htaccess e cliccare su “Create new file“.
Dopo averlo creato, clicchiamo con il tasto destro sul file e clicchiamo su Edit.
Nel file vuoto incolliamo questo codice:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Come modificare il file htaccess
Ora che abbiamo visto come trovare il file htaccess, passiamo alla modifica vera e propria.
Trattandosi di un file di testo possiamo modificare il file htaccess in maniera molto semplice.
Prima di modificare il file, però, è bene creare una copia di backup in modo da poter ripristinare il file htaccess precedente nel caso in cui ci siano errori.
Abbiamo diverse possibilità:
- possiamo modificare il file htaccess direttamente dal client FTP o dal file manager;
- possiamo usare un plugin che ci permette di modificare il file direttamente da WordPress.
Tieni presente che ci sono plugin come Yoast SEO e Rank Math che hanno già la funzione di modificare il file htaccess. Se usi già uno di questi plugin, non devi quindi installare un plugin separato per modificare il file htaccess.
Per modificare il file htaccess con il file manager ci basta cliccare con il tasto destro sul file e poi cliccare su “Edit“, proprio come abbiamo visto prima.
Adesso vediamo come fare con un plugin, prendendo come esempio Rank Math.
Modificare il file htaccess con Rank Math
Rank Math include anche un editor che ci permette di modificare il file htaccess direttamente dall’area amministrativa di WordPress.
Clicchiamo su Rank Math SEO > Impostazioni generali.
Nella lista delle impostazioni vedremo “Modifica .htaccess“.
Da qui possiamo modificare il file e salvarlo cliccando su “Salva le modifiche“. In ogni momento possiamo anche riportare il file alle impostazioni di default cliccando su “Reimposta le opzioni“.
Casi d’uso del file htaccess
Possiamo usare il file htaccess per diversi scopi, per esempio:
- impostare i redirect;
- proteggere una cartella con password;
- mostrare pagine di errore personalizzate;
- disattivare l’esecuzione di file php;
- disattivare XML-RPC;
- impedire l’hotlinking delle immagini;
- disattivare il directory listing;
- bloccare l’accesso ai file di configurazione.
Tieni presente che tutti gli esempi di codice che riportiamo contengono la prima riga “RewriteEngine On”. Questo ti serve per capire dove inserire il codice, ma dopo averla inserita una volta, non è necessario ripetere questa riga all’interno del file.
Redirect da http a https
Modificare il file htaccess è uno dei passaggi da fare quando si vuole passare da http ad https.
Aggiungendo questo codice al file .htaccess possiamo impostare un redirect 301 dalla versione http alla versione https.
Il codice da inserire è questo:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*)$ https://www.dominio.it/$1 [L,R=301]
Dovrai sostituire “www.dominio.it” con il tuo dominio.
In questo modo ci assicuriamo che i visitatori (e i motori di ricerca) siano rimandati alla versione sicura del sito.
Redirect da non www a www
Per far sì che chi visita “dominio.com” sia rimandato a “www.dominio.com”, possiamo usare un redirect 301.
Ci basta inserire nel file htaccess queste righe:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sito.com [NC]
RewriteRule ^(.*)$ http://www.sito.com/$1 [R=301,L]
Basta sostituire “sito.com” e “www.sito.com” con il dominio corretto.
Redirect da www a non www
Se vuoi che chi visita “www.dominio.com” sia rimandato alla versione senza www “dominio.com”, puoi usare questo codice.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.sito.com [NC]
RewriteRule ^(.*)$ http://sito.com/$1 [R=301,L]
Redirect per cambio di dominio
Se cambiamo dominio, dobbiamo assicurarci di impostare un redirect. In questo modo tutti coloro che cercano di raggiungere il vecchio indirizzo saranno rimandati al nuovo.
Ecco il codice da usare:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^vecchiodominio.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.vecchiodominio.com$
RewriteRule (.*)$ https://www.nuovodominio.com/$1 [R=301,L]
Inserisci il dominio che avevi in precedenza al posto di “vecchiodominio.com” e il nuovo dominio al posto di “nuovodominio.com”.
Redirect di una singola pagina
Per reindirizzare con un redirect 301 una pagina verso un nuovo indirizzo puoi usare questo codice:
Redirect 301 /vecchia-pagina https://www.miosito.it/nuova-pagina
Facciamo un esempio. Per reindirizzare “supporthost.com/reindirizzamenti/” verso “supporthost.com/redirect/”, dovremmo inserire questo codice:
Redirect 301 /reindirizzamenti https://supporthost.com/redirect/
Proteggere con password una cartella
Possiamo impostare una combinazione di username e password per proteggere l’accesso a una cartella.
Oltre a poterlo fare direttamente da cPanel come abbiamo visto nel tutorial sulla privacy directory, possiamo anche farlo direttamente con un file htpasswd e modificando il file htaccess.
Questa operazione richiede un passaggio prima di poter inserire il codice nel file htaccess. La prima cosa da fare, infatti, è creare un file htpasswd all’interno del quale inserire una stringa di username e password criptati.
Il file htpasswd è un file che contiene il nome dell’utente e la password cifrata, in questo modo:
user:encrypted_password
Possiamo generare la password cifrata con uno strumento come questo.
Dobbiamo inserire username, password e il percorso in cui inseriremo il file htpasswd.
Dobbiamo quindi creare un file .htpasswd e incollare al suo interno la riga composta da username e password, come in questo esempio:
utente:czOHsdLewzkk6
E poi inserire nel file htaccess questa riga:
AuthType Basic
AuthName 'Area Riservata'
AuthUserFile /home/utente/privata/.htpasswd
Require valid-user
Dobbiamo sostituire “/home/utente/privata/” con il percorso della posizione del nostro file .htpasswd.
A questo punto quando cercheremo di visitare quella cartella, ci verrà richiesto di inserire username e password come in questo esempio.
Impostare pagine di errore personalizzate
Possiamo creare delle pagine di errore da mostrare ai visitatori del nostro sito quando ad esempio un indirizzo non è stato trovato o quando non è possibile accedere a una determinata risorsa.
Nota: è possibile creare pagine di errore personalizzate direttamente da cPanel. In questo caso però vedremo come farle manualmente.
La prima cosa da fare è creare la pagina di errore, per esempio creando un file html e poi caricarla sul server.
Dopodiché possiamo modificare il file htaccess.
Apriamo il file htaccess e inseriamo questo codice:
ErrorDocument 403 /errors/403.html
Dobbiamo sostituire “/errors/403.html” con il percorso della pagina di errore.
In questo modo invece della pagina di errore predefinita, verrà mostrata la pagina personalizzata che abbiamo creato.
Disattivare l’esecuzione di file php su WordPress
Il file htaccess ci permette anche di modificare la configurazione del sito in modo da migliorare la sicurezza.
Una cosa che possiamo fare è limitare l’esecuzione dei file php in modo che non possa avvenire in determinate cartelle.
Per esempio potremmo disattivare l’esecuzione dei file PHP nella cartella “uploads” di WordPress.
In questo caso ci basta creare un file .htaccess da inserire in “wp-content/uploads/” con le seguenti righe di codice:
<Files *.php>
deny from all
</Files>
Possiamo ripetere la stessa procedura per tutte le cartelle in cui non è necessario eseguire file php.
Disattivare XML-RPC
Il file XML-RPC è un file php che permette di accedere a WordPress in remoto.
Visto che oggi ci sono sistemi più sicuri grazie all’integrazione delle REST API, è consigliabile disattivare questo file per ridurre i rischi per la sicurezza.
Su SupportHost su tutti i piani tra cui l’hosting WordPress, blocchiamo di default questo file, rendendolo accessibile solo a Jetpack (un plugin che lo richiede per il suo funzionamento).
Se sul tuo servizio di hosting non è bloccato, puoi farlo aggiungendo al file .htaccess questo codice:
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
Disattivare l’hotlinking
Se non vuoi che altri siti possano inserire sul loro sito immagini che in realtà sono ospitate sul tuo server. L’hotlinking, infatti, fa sì che vengano utilizzate le risorse del tuo server e può causare rallentamenti e consumi di risorse eccessivi.
Inserendo questo codice nel file htaccess possiamo disattivare l’hotlinking.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?dominio.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ [NC,R,L]
Dovrai sostituire “dominio.com” con il tuo dominio.
Disattivare il directory listing
Possiamo impedire che gli utenti vedano il contenuto delle cartelle, come struttura delle cartelle e nomi dei file, bloccando la funzione di directory listing.
Per farlo ci basta inserire nel file htaccess questa riga:
Options -Indexes
Bloccare l’accesso a wp-config.php e .htaccess
Visto che wp-config.php (per i siti WordPress) e il file htaccess sono file di configurazione importanti, può essere utile bloccare gli accessi non autorizzati a questi file.
Per bloccare l’accesso a wp-config.php aggiungiamo nell’htaccess questo codice:
<Files wp-config.php>
order allow,deny deny from all
</Files>
Mentre per bloccare l’accesso al file .htaccess, usiamo questo:
<!-- <Files .htaccess>
order allow,deny deny from all
</Files> -->
Conclusioni
Come abbiamo visto il file htaccess è una manna dal cielo per configurare Apache. Ci permette di impostare reindirizzamenti di singole risorse o dell’intero sito, bloccare gli accessi non autorizzati al file, proteggere l’accesso ad alcune risorse con password e altro ancora.
Con questa guida ora hai le basi per trovare facilmente il file htaccess e inserire le regole che ti servono.
Ora tocca a te: hai mai usato il file htaccess prima d’ora? Facci sapere per cosa ti è stato utile, scrivendocelo in un commento!
Lascia un commento