Come mettere un sito “in costruzione” via .htaccess - Blog: Approfondimenti e Ispirazione - Stiac | Engineering Firm

Come mettere un sito “in costruzione” via .htaccess

Vai ai contenuti

Come mettere un sito “in costruzione” via .htaccess

Stiac | Engineering Firm
Pubblicato da Stiac Editorial Board in Code Nuggets · Venerdì 08 Nov 2019
Tags: .htaccessmanutenzione
Durante la manutenzione di un sito, ad esempio per aggiornamenti consistenti e soprattutto nel caso in cui siano da definire redirect di vario tipo, può essere importante mettere il sito rapidamente “in manutenzione” in modo che nessuno possa visionare pagine parziali, obsolete o del tutto errate.



Come fare (Entry Level)
Se già avete fatto altre volte questo procedimento, eccolo sintetizzato in poche parole.
Nel file .htaccess dovrete sostituire il contenuto attuale (nota: fatevi un backup prima, per quando ripristinerete tutto) con questo:



Questo file effettuerà un redirect di tutte le richieste al sito alla pagina manutenzione.html, che a sua volta dovrà essere presente nella root (cioè nella stessa cartella del file principale .htaccess), e potrebbe essere così:



Notate che:
  1. Abbiamo imposto un redirect 302, quindi soltanto per gli utenti e non per i motori (in modo da non perdere l’indicizzazione ed il posizionamento regressi, almeno per qualche tempo);
  2. Il file è HTML semplice e statico, con CSS embedded per semplificare la gestione e per avere “tutto in uno”, per così dire;
  3. Nel file .htaccess di manutenzione è possibile indicare un indirizzo IP da cui vedere il sito normalmente, mentre tutti gli altri non lo vedranno; questo IP potrebbe essere il vostro, ad esempio, in modo da permettervi di lavorare al sito mentre tutti gli altri visitatori vedranno “lavori in corso”; l’IP deve essere specificato come !^123\.456\.789\.123, quindi con i punti ordinari . sostituiti da \. e con !^ davanti.

Come fare (High Level)
I requisiti base
Vediamo le cose in modo più approfondito ed esteso, a questo punto. Mediante una semplice modifica al file .htaccess andremo a mettere offline qualsiasi sito basato su server Apache, con PHP MySQL o anche con altri linguaggi e servizi attivi – purchè siano attivi Apache 2.x ed il mod_rewrite.

Mi riferirò ad un sito PHP qualsiasi, che giri sotto server Apache a prescindere dal database usato (MySQL o altri). Quindi va bene per siti in PHP come WordPress, Joomla!, Magento, Prestashop, e CMS proprietari purchè siano con server Apache alla base.


Come mettere il sito in costruzione

Per agire in questa direzione, è semplice:
  1. Andiamo nella root del sito, ed editiamo il file .htaccess via FTP; prima di modificarlo, meglio scaricarsi una copia di backup in modo da poter rimettere rapidamente a posto le cose dopo aver finito la manutenzione. Per sapere come effettuare le operazioni basilari su FileZilla, uno dei client FTP più diffusi, leggete il tutorial che ho scritto ieri.
  2. Cancelliamo tutto quello che sia presente in questo file, ed inseriamo il contenuto riportato di seguito.

Per mettere qualsiasi sito in manutenzione, cioè per far apparire una pagina “in manutenzione” a qualsiasi visitatore (amministratori del sito inclusi), scriviamo nel file .htaccess:



Questo, permette di mettere in manutenzione il sito ovvero di redirezionare mediante redirect 307 (una redirezione temporanea, in pratica, che non verrà indicizzata dai motori di ricerca) tutto il traffico alla pagina maintenance.html, il quale deve essere un file HTML statico contenente il messaggio che vogliamo dare ai visitatori (ad esempio "Torneremo presto online").

Impostazioni più avanzate
Per fare una cosa più ricercata, possiamo anche permettere ad un indirizzo IP (ad esempio il nostro, nell’esempio xxx.yyy.zzz.kkk, scopri qui come trovarlo) di visionare il sito come sempre, aggiungendo una direttiva esplicita. In questo modo xxx.yyy.zzz.kkk sarà “autorizzato” a visionare normalmente il traffico, ed è anche possibile aggiungere più di un IP “speciale” ripetendo la riga indicata più volte nel file .htaccess.


Per far tornare tutto come prima, è sufficente cancellare maintenance.html e ripristinare il file originale .htaccess che avete (sperabilmente) salvato all’inizio come backup. Per far “vedere” le modifiche al vostro browser, è opportuno ogni volta svuotare la cache del DNS.


Torna ai contenuti