Sito in manutenzione tramite htaccess senza utilizzare plugin



(Aggiornato il 10/02/2024)
In questo articolo spiego come impostare un sito in manutenzione tramite htaccess e senza utilizzare plugin.

Impostare il sito in manutenzione tramite htaccess, oltre che a poterlo mettere in manutenzione senza utilizzare plugin aggiuntivi, permette la possibilità di configurare tramite indirizzo IP chi potrà visualizzare il sito online e chi invece visualizzerà il sito in manutenzione.





La prima cosa da fare ovviamente è creare la pagina di manutenzione, niente di complicato, una semplice scritta che comunica sito in manutenzione, torniamo subito, grazie della pazienza ecc ecc…!

Apri il blocco note e inserisci al suo interno il seguente codice:

[php]<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%3E%0Avar%20gform%3Bgform%7C%7C(document.addEventListener(%22gform_main_scripts_loaded%22%2Cfunction()%7Bgform.scriptsLoaded%3D!0%7D)%2Cwindow.addEventListener(%22DOMContentLoaded%22%2Cfunction()%7Bgform.domLoaded%3D!0%7D)%2Cgform%3D%7BdomLoaded%3A!1%2CscriptsLoaded%3A!1%2CinitializeOnLoaded%3Afunction(o)%7Bgform.domLoaded%26%26gform.scriptsLoaded%3Fo()%3A!gform.domLoaded%26%26gform.scriptsLoaded%3Fwindow.addEventListener(%22DOMContentLoaded%22%2Co)%3Adocument.addEventListener(%22gform_main_scripts_loaded%22%2Co)%7D%2Chooks%3A%7Baction%3A%7B%7D%2Cfilter%3A%7B%7D%7D%2CaddAction%3Afunction(o%2Cn%2Cr%2Ct)%7Bgform.addHook(%22action%22%2Co%2Cn%2Cr%2Ct)%7D%2CaddFilter%3Afunction(o%2Cn%2Cr%2Ct)%7Bgform.addHook(%22filter%22%2Co%2Cn%2Cr%2Ct)%7D%2CdoAction%3Afunction(o)%7Bgform.doHook(%22action%22%2Co%2Carguments)%7D%2CapplyFilters%3Afunction(o)%7Breturn%20gform.doHook(%22filter%22%2Co%2Carguments)%7D%2CremoveAction%3Afunction(o%2Cn)%7Bgform.removeHook(%22action%22%2Co%2Cn)%7D%2CremoveFilter%3Afunction(o%2Cn%2Cr)%7Bgform.removeHook(%22filter%22%2Co%2Cn%2Cr)%7D%2CaddHook%3Afunction(o%2Cn%2Cr%2Ct%2Ci)%7Bnull%3D%3Dgform.hooks%5Bo%5D%5Bn%5D%26%26(gform.hooks%5Bo%5D%5Bn%5D%3D%5B%5D)%3Bvar%20e%3Dgform.hooks%5Bo%5D%5Bn%5D%3Bnull%3D%3Di%26%26(i%3Dn%2B%22_%22%2Be.length)%2Cgform.hooks%5Bo%5D%5Bn%5D.push(%7Btag%3Ai%2Ccallable%3Ar%2Cpriority%3At%3Dnull%3D%3Dt%3F10%3At%7D)%7D%2CdoHook%3Afunction(n%2Co%2Cr)%7Bvar%20t%3Bif(r%3DArray.prototype.slice.call(r%2C1)%2Cnull!%3Dgform.hooks%5Bn%5D%5Bo%5D%26%26((o%3Dgform.hooks%5Bn%5D%5Bo%5D).sort(function(o%2Cn)%7Breturn%20o.priority-n.priority%7D)%2Co.forEach(function(o)%7B%22function%22!%3Dtypeof(t%3Do.callable)%26%26(t%3Dwindow%5Bt%5D)%2C%22action%22%3D%3Dn%3Ft.apply(null%2Cr)%3Ar%5B0%5D%3Dt.apply(null%2Cr)%7D))%2C%22filter%22%3D%3Dn)return%20r%5B0%5D%7D%2CremoveHook%3Afunction(o%2Cn%2Ct%2Ci)%7Bvar%20r%3Bnull!%3Dgform.hooks%5Bo%5D%5Bn%5D%26%26(r%3D(r%3Dgform.hooks%5Bo%5D%5Bn%5D).filter(function(o%2Cn%2Cr)%7Breturn!!(null!%3Di%26%26i!%3Do.tag%7C%7Cnull!%3Dt%26%26t!%3Do.priority)%7D)%2Cgform.hooks%5Bo%5D%5Bn%5D%3Dr)%7D%7D)%3B%0A%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />

<title>Sito in Manutenzione</title>
</head>

<body>
<wp-p align="center"> </wp-p>
<wp-p align="center"><strong>SITO IN MANUTENZIONE</strong></wp-p>
<wp-p align="center"><strong>TORNIAMO PRESTO</strong></wp-p>
<wp-p align="center"><strong>GRAZIE PER LA PAZIENZA! </strong></wp-p>

</body>
</html>[/php]

Se sei pratico di HTML puoi eventualmente modificare il codice a tuo piacimento, salva il file con il nome “sitomanutenzione.html”. Segue foto del risultato…

Sito in manutenzione

Dopo averlo salvato caricalo via FTP all’interno della root del sito il quale vuoi mettere in manutenzione.

SITO IN MANUTENZIONE TRAMITE HTACCESS:

L’ultimo passaggio sarà quello di inserire le direttive nel file htaccess, ovviamente salva il file htaccess originale per poterlo ripristinare una volta che avrete deciso di eliminare la modalità di manutenzione.

Fai una copia del file htaccess originale, apri il nuovo file con il blocco note e inserisci le nuove direttive riportate di seguito per:

REDIRECT A PAGINA DI MANUTENZIONE:

# REDIRECT MANUTENZIONE SITO
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^87\.87\.87\.87
RewriteCond %{REQUEST_URI} !/sitomanutenzione.html$ [NC]
RewriteRule .* /sitomanutenzione.html [R=307,L]
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Dopo aver inserito le direttive ti basterà sostituire tutti i numeri “87” con i numeri del tuo indirizzo IP, questo ti permetterà di visualizzare il sito a differenza di tutti gli altri utenti con un indirizzo IP diverso che visualizzeranno il sito in manutenzione e verranno reindirizzati alla pagina “sitomanutenzione.html“.

Nel caso volessi permettere la visualizzazione del sito ad altre persone specifiche, quindi con un indirizzo IP specifico, ti basterà inserire un’altra riga uguale a quella contenente i numeri “87” e modificare i numeri con l’indirizzo IP della persona specifica che potrà visualizzare il sito.

A differenza di altri siti che riportano solo il codice per il redirect del sito alla pagina di manutenzione, qui sono inserite anche le direttive htaccess di default di WordPress, quelle contenute tra i tag “BEGIN WordPress” e “END WordPress”.

Pur impostando il tuo indirizzo IP che impedisce di farti visualizzare il sito in manutenzione, l’inserimento delle direttive htaccess di default di WordPress evita la possibilità che siano bloccate alcune pagine differenti dalla homepage del sito che potrebbero restituire un errore “404 Not Found”, questo dovuto ad alcuni hosting con regole di impostazioni diverse.

MANUTENZIONE E REDIRECT A SITO WEB:

Nel caso volessi impostare il sito in manutenzione, ma invece di creare un redirect ad una pagina reindirizzare ad un’altro sito, qui di seguito riporto le direttive da inserire nel file htaccess, ti basterà sostituire il link di esempio con l’indirizzo del sito al quale reindirizzare tutti gli utenti.

# REDIRECT MANUTENZIONE SITO
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^87\.12\.39\.183
RewriteCond %{REQUEST_URI} !^/www.miosito\.it$
RewriteRule ^(.*)$ http://www.miosito.it/ [R=307,L]
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Ultima cosa da segnalare è la direttiva [R=307,L] che specifica ai motori di ricerca che la condizione del reindirizzamento è temporanea (Temporary redirect).


Vietata la Riproduzione.
Protezione Copyright

4 commenti
  1. roberto dice:

    Ciao, bell’ articolo. Non è più indicato però dare il codice stato 503 anzicchè il 307 ? E soprattutto inserire un retry after può essere una scelta giusta per far si che sia googlebot che gli utenti siano avvisati che quel server è in manutenzione, ma che nn ci sono problemi sul sito.

    Inoltre una domanda : ma per far visualizzare ad un unico ip se io scrivo : RewriteCond %{REMOTE_ADDR} !^ip.del.server.sito$ e poi aggiungo anche RewriteCond %{REMOTE_ADDR} !^87\.12\.39\.183 funziona ? ciao e buon lavoro

    Rispondi
    • Admin-Fausto dice:

      Salve Roberto, lo stato 503 diciamo che è più specifico in caso di manutenzione/errore server mentre lo stato 307 indica solamente che è presente un redirect temporaneo ad un’altra pagina (in questo caso sitomanutenzione.html).

      Per la tua seconda domanda non lo so, potrebbe funzionare basta solo testarlo. Ciao.

      Rispondi
  2. Elena dice:

    Ciao,
    molto interessante per chi come me ha poca dimestichezza con htaccess.
    La mia esigenza però è un po’ diversa: vorrei usare un index.html con reidrect ad altro sito e mantenere il sito wordpress in manutenzione su index.php.
    Se cambio semplicemente le priorità funziona il redirect sempre! E non riesco quindi in pratica ad accedere alla home del sito wordpress.
    Cosa dovrei modificare?

    Rispondi
    • Admin-Fausto dice:

      Salve Elena, l’ultima funzione htaccess inserita è proprio la funzione che esegue quello che cerchi, il codice da utilizzare è inserito nell’ultimo “quadrato bianco” dove all’interno trovi scritta la parola “miosito”. Ciao :-D

      Rispondi

Lascia un Commento

Vuoi partecipare alla discussione?
Sentitevi liberi di contribuire!

Lascia un commento

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