back to top

Mettere un sito in manutenzione con .htaccess

Sono tanti i motivi per cui si puรฒ avere l’esigenza di mettere un sito in manutenzione: restyling grafico, aggiornamento del CMS utilizzato, messa in sicurezza dei contenuti da vulnerabilitร  rilevate, migrazione tra piattaforme e molto altro; qualunque sia il motivo per il quale lo si fa, in questo post vedremo come questa procedura possa essere molto semplice se operata attraverso un file .htaccess.

Anche gli utenti di CMS come WordPress potranno beneficiare di questa tecnica in quanto molto piรน semplice delle procedure previste da molti degli appositi plugin per la messa off-line di WordPress.

Creare una pagina con l’avviso

Apriamo il nostro editor HTML preferito e creiamo la nostra pagina web di avviso di manutenzione. In pratica si tratterร  di crere la pagina che verrร  mostrata agli utenti che cercheranno di accedere alle pagine del sito web.

In questa pagina dobbiamo comunicare agli utenti che il sito รจ momentaneamente off-line per manutenzione.

Un esempio di pagina (estremamente semplice) che potete copiare e personalizzare a piacimento:

<!doctype html>
<html>
  <head>
    <title>Sito in manutenzione</title>
    <style>
      body { padding: 150px; font: 20px Helvetica, sans-serif; color: #333; }
      h1 { font-size: 50px; }
      article { display: block; text-align: left; width: 650px; margin: 0 auto; }
      a { color: #dc8100; text-decoration: none; }
      a:hover { color: #333; text-decoration: none; }
    </style>
  </head>
  <body>
    <article>
      <h1>Stiamo aggiornando il sito web!</h1>
      <div>
        <p>Stiamo lavorando all'aggiornamento del nostro sito, pertanto non รจ possibile accedere ai contenuti ed ai servizi. Vi invitiamo a tornare a trovarci.</p>
        <p>Per problemi o richieste urgenti potete <a href="mailto:[email protected]">scriverci una mail</a>.</p>
        <p>Ci scusiamo per il disagio.</p>
      </div>
    </article>
  </body>
</html>

Copiate il codice HTML, salvate il file come “sito-in-manutenzione.html” e caricate il file nella root del vostro spazio web (dove cioรจ si trova il file index del nostro sito).

Mettere un sito off-line con .htaccess

Vediamo ora il contenuto da aggiungere al nostro file .htaccess (se non ne abbiamo uno basterร  crearlo ella root del nostro spazio web).

RewriteEngine On
RewriteCond %{REMOTE_HOST} !123\.123\.123\.123
RewriteCond %{REQUEST_URI} !sito-in-manutenzione\.html
RewriteRule (.*) sito-in-manutenzione.html [R=307,L]

In pratica ogni richiesta di una pagina del sito comporterร  un redirect provvisorio (lo stato 307 corrisponde a “Temporary Redirect”) sulla pagina di avviso di manutenzione.

Indicare il proprio indirizzo IP

Se avete un IP statico dovete modificare questa riga con l’IP Address della vostra connessione alla Rete:

RewriteCond %{REMOTE_HOST} !123\.123\.123\.123

Cosรฌ facendo, attraverso la vostra postazione, riuscirete ad accedere al sito e potrete svolgere le operazioni di manutenzione (in pratica le regole aggiunte al file .htaccess non verranno applicate alla vostra connessione).

Se, viceversa, non avete un IP statico potete rimuovere questa linea di coidice. Ovviamente il sistema vi considererร  al pari degli altri fruitori del sito e vi redirezionerร  alla pagina con l’avviso. In tal caso potreste effettuare le modifiche in locale ed effettuare l’upload una volta ultimate.

Consentire l’accesso ad alcuni file

E’ possibile, durante la manutenzione del sito, consentire agli utenti di accedere a taluni file. Per farlo sarร  sufficiente modificare il file .htaccess visto sopa in questo modo:

RewriteEngine On
RewriteCond %{REMOTE_HOST} !123\.123\.123\.123
RewriteCond %{REQUEST_URI} !sito-in-manutenzione\.html
RewriteCond %{REQUEST_URI} !(\.gif|\.jpeg|\.jpg|\.png|\.bmp|\.mp3|\.mp4|\.pdf)$
RewriteRule (.*) sito-in-manutenzione.html [R=307,L]

In pratica abbiamo aggiunto una nuova condizione:

RewriteCond %{REQUEST_URI} !(\.gif|\.jpeg|\.jpg|\.png|\.bmp|\.mp3|\.mp4|\.pdf)$

Grazie a questa condizione (che potete modificare a piacimento) abbiamo escluso certi tipi di file dal redirect verso la pagina di manutenzione. Quindi se un utente volesse accedere, ad esempio, ad un file PDF riuscirebbe a farlo nonostante il sito sia in manutenzione.

Utilizzo con WordPress

Come detto all’inizio di questo articolo, la metodica in oggetto puรฒ essere utilizzata anche con WordPress. Per farlo non bisognerร  fare nulla di diverso rispetto a quanto giร  descritto. Unica attenzione sarร  nel copiare le istruzioni nel file .htaccess aggiungendole all’inizio del file, cioรจ prima delle regole di WordPress:

RewriteEngine On
RewriteCond %{REMOTE_HOST} !123\.123\.123\.123
RewriteCond %{REQUEST_URI} !sito-in-manutenzione\.html
RewriteRule (.*) sito-in-manutenzione.html [R=307,L]

# 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

In questo modo le regole relative alla manutenzione avranno la precedenza su quelle di default di WordPress.

Pubblicitร 
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.

Leggi anche...

ERR_TOO_MANY_REDIRECTS: cos’è e come risolvere l’errore

L'errore ERR_TOO_MANY_REDIRECTS si verifica quando un browser tenta di...

Lucchetto HTTPS barrato di rosso: cosa significa e come risolvere

Il lucchetto HTTPS barrato di rosso mostrato dal browser...

Risolvere l’errore Bad Request … Size of a request header field exceeds server limit

L'errore "Bad Request: Your browser sent a request that...

NGinx: cos’è, come funziona e perché conviene usarlo

Prima di parlare di NGinx, delle sue caratteristiche e...

Errore 410: cos’è, quando si verifica e come risolvere (se necessario)

Il codice di stato HTTP 410 (o “Gone”), più...

Errore 451 Unavailable For Legal Reasons: cos’è e quando si verifica

L'errore HTTP 451 Unavailable For Legal Reasons รจ un...
Pubblicitร