Configurazione di regole e reindirizzamenti tramite .htaccess

Il file .htaccess è un file di configurazione a livello di directory, supportato dal server web Apache. Consente di modificare le impostazioni del server web (come abilitare o disabilitare funzionalità) per un account specifico, senza influire sulla configurazione globale del server.

Questo file applica le sue impostazioni all'intera directory in cui si trova, inclusi tutti i file e le sottodirectory presenti in quella directory. Qualsiasi modifica apportata al file .htaccess viene applicata istantaneamente, senza necessità di riavviare il server.

Come individuare il file .htaccess

Per trovare il file .htaccess:  

1. Accedi al tuo account Spaceship >> scegli Hosting Manager in Launchpad >> Gestisci accanto a un piano di hosting >> File e Archiviazione >> Gestisci File vicino al nome del sito web.

2. Verrai reindirizzato alla cartella principale del dominio. 

3.  Se hai bisogno di modificare il file .htaccess per il dominio, individua il file .htaccess nella cartella principale del dominio, fai clic destro su di esso e scegli l'opzione Modifica :


NOTA: Assicurati che "Mostra file nascosti (dotfiles)" sia abilitato nel menu Impostazioni:


4. Se non c'è un file .htaccess nel File Manager, puoi crearne uno nuovo con il pulsante + File:


5. Ora sei pronto per aggiungere le tue regole di configurazione e salvarle.
   

Elenco delle regole .htaccess più comunemente utilizzate

Blocco 

Questo metodo consente di bloccare gli utenti in base al loro indirizzo IP o dominio. È particolarmente utile per limitare l'accesso a visitatori indesiderati o per restringere l'accesso a sezioni specifiche del tuo sito web, come l'area di amministrazione, solo al proprietario.

Per implementare regole di blocco specifiche, crea un file .htaccess con quanto segue:

(Per consentire l'accesso a tutti gli altri e bloccare gli utenti con un indirizzo IP X.X.X.X)

<RequireAll>

Require all granted

Require not ip X.X.X.X

</RequireAll>

(Per bloccare tutti i visitatori tranne gli IP specifici X.X.X.X e Y.Y.Y.Y)

<RequireAll>

Require all denied

Require ip X.X.X.X

Require ip Y.Y.Y.Y

</RequireAll>

NOTA: Non utilizzare le direttive obsolete Allow, Deny e Order con la nuova direttiva Require .

Mod_Rewrite (regole di reindirizzamento)

Mod_Rewrite definisce come le pagine web e gli URL vengono presentati ai visitatori.

Per impostazione predefinita, Mod_Rewrite associa un URL a un percorso corrispondente nel filesystem. Tuttavia, può anche reindirizzare un URL verso un altro.

Prima di configurare un reindirizzamento, è importante scegliere il tipo di reindirizzamento più adatto alle tue esigenze:

  • Reindirizzamento permanente (301): Questo reindirizzamento invia un codice di stato 301, indicando che la pagina è stata spostata in modo permanente. Viene memorizzato nella cache del browser, segnalando ai motori di ricerca e agli user agent di aggiornare l'URL nei loro database. Questo è il tipo di reindirizzamento più comune.

  • Reindirizzamento temporaneo (302): Questo reindirizzamento invia un codice di stato 302, indicando che lo spostamento è temporaneo. Il browser non memorizzerà nella cache questo reindirizzamento e, sebbene reindirizzerà visitatori e motori di ricerca, la pagina originale continuerà a essere indicizzata. Questo tipo di reindirizzamento è consigliato a meno che tu non sia certo che l'URL non cambierà in futuro.

Di seguito è riportato un elenco di alcuni dei reindirizzamenti più comuni e utili che possono essere configurati tramite il file .htaccess:

Reindirizzamento permanente da example1.com a example2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^(.*)$ "http\:\/\/example2\.com/$1" [R=301,L]

Reindirizzamento temporaneo da exampledomain1.com a exampledomain2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^(.*)$ "http\:\/\/example2\.com\/" [R=302,L]

NOTA: Di seguito sono riportati esempi di reindirizzamenti permanenti. I reindirizzamenti temporanei possono essere definiti sostituendo [R=301,L] con [R=302,L] alla fine del codice (dove necessario).

Reindirizzamento da example1.com/subfolder a example2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^subfolder/$ "http\:\/\/example2\.com\/" [R=301,L]

Reindirizzamento da HTTP a HTTPS per example.com

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule .* https://example.com%{REQUEST_URI} [R,L]

oppure

RewriteCond %{SERVER_PORT} 80

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example\.com$

RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

Reindirizzamento da non-WWW a WWW

  • per qualsiasi dominio, .htaccess ha effetto:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

  • per un dominio specifico:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]

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

Reindirizzamento da WWW a non-WWW

  • per qualsiasi dominio .htaccess ha effetto:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

  • per un dominio specifico:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]

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

Reindirizza tutte le pagine di example.com alle corrispondenti pagine di domain.com

RedirectMatch 301 ^/(.*)$ http://domain.com/$1

NOTA: Tutti i nomi delle pagine devono corrispondere su entrambi i domini, altrimenti il reindirizzamento restituirà un messaggio "Pagina non trovata".

Reindirizza una pagina a un nuovo URL

Redirect 301 /old_page.html http://www.domain.com/new_page.html

NOTA: Questa tecnica può essere utile per reindirizzare una pagina eliminata a un errore 404, oppure per apportare modifiche SEO dopo aver aggiornato i riferimenti ai contenuti.

Autorizzazione/autenticazione 

Questo tipo di regola definisce restrizioni di sicurezza per una directory o sottodirectory. Puoi proteggere con password le directory in modo che qualsiasi visitatore che tenta di accedervi debba inserire un nome utente e una password.

Per configurare questa protezione:  

1. Crea la directory che desideri proteggere all'interno della cartella /home/cpanel_user/.htpasswds/ (ad esempio, per domain.com/test, il percorso è .htpasswds/domain.com/test/).

2. In questa directory, crea un file passwd e aggiungi le credenziali di accesso hashate utilizzando un generatore online.

3. Aggiungi le seguenti direttive al file .htaccess:

AuthType Basic

AuthName "Directory Name"

AuthUserFile "/home/cpanel_user/.htpasswds/public_html/test/passwd"

require valid-user

Pagine di errore personalizzate

Questa funzione consente di creare pagine di errore personalizzate per il tuo sito web. È un'opzione utile perché ti permette di mostrare ai visitatori un messaggio di errore che si adatta al tema del tuo sito in caso di URL non funzionanti. Questo aiuta a evitare la visualizzazione dell'errore predefinito '404 File Not Found' e invece restituisce una pagina di errore personalizzata con istruzioni per guidare gli utenti a tornare ai contenuti del sito, evitando confusione.

Per configurare una pagina di errore personalizzata, aggiungi il seguente testo a un file .htaccess:

ErrorDocument 404 /404.html

Questa riga istruisce il server Web Apache a caricare un file 404.html situato nella directory principale del dominio ogni volta che si verifica un errore 404 (File Not Found).

NOTA: Per creare pagine di errore personalizzate per altri errori (come 403 o 500), basta sostituire 404 con il codice di errore corrispondente e /404.html con il percorso del tuo file di errore personalizzato.

Disabilitare le regole .htaccess esistenti

Se hai bisogno di disabilitare temporaneamente alcune delle regole esistenti, ad esempio per scopi di test, puoi facilmente commentarle. Per farlo, basta aggiungere un cancelletto (#) all'inizio della riga.

In alternativa, puoi disabilitare una singola riga o un blocco di righe selezionandole e utilizzando la scorciatoia Ctrl + / .

È richiesto un indirizzo email valido