Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Redirigere tutto ad una pagina durante la manutenzione

    Ciao. Devo pubblicare la nuova versione di un sito abbastanza popolato e vorrei evitare che gli utenti vedano il sito non funzionante durante la manutenzione. Quindi vorrei redirigere tutto (qualsiasi indirizzo digitato) ad una pagina statica (per es. http://www.miosito.it/down.html). Qual'è la regola da inserire nel file .htaccess ?

    Grazie davvero

  2. #2
    Una volta l'ho fatto mi sembra di aver usato questa

    codice:
    RewriteCond %{REMOTE_ADDR} ^xxx\.xxx\.xxx\.xxx$ 
    RewriteRule .* - [S=1]
    RewriteRule .* /index_manutenzione.html [R]
    Sostituisci i 4 gruppi di xxx con i 4 gruppi del tuo IPv4, in questo modo tu puoi vedere tutto il sito
    mentre gli altri vengono reindirizzati alla index_manutenzione.html

    Fammi sapere perche potrebbe anche non funzionare.



  3. #3
    codice:
    RewriteCond %{REMOTE_ADDR} ^xxx\.xxx\.xxx\.xxx$ 
    RewriteRule .* - [S=1]
    RewriteRule .* /index_manutenzione.html [R]
    Ciao rel_style, non è che potresti spiegarmi il significato della seconda riga?

    ... perchè in apparenza (ma lo dice uno poco pratico di mod_rewrite) sembra che si vada a creare un loop infinito. :master:


    Altrimenti io avrei utilizzato questo codice (che però nega anche a mé l'accesso al sito mentre eseguo l'upload della nuova versione)

    codice:
    RewriteEngine On
    RewriteBase /
    RewriteCond  %{REQUEST_URI} !^/down.html$
    RewriteRule ^ http://www.miosito.com/down.html [L,R=302]

  4. #4
    Il RewriteCond e' una regola di riscrittura condizionale,
    piu' esattamente una direttiva che effettua test sulle
    variabili di ambiente e aggiunge alla direttiva
    RewriteRule un controllo sull'esecuzione della regola
    creata.

    In realta' la seconda riga RewriteRule .* - [S=1]
    viene considerata solo se e' valida la condizione creata
    con RewriteCond (RewriteCond %{REMOTE_ADDR} ^xxx\.xxx\.xxx\.xxx$).
    Solo se ci troviamo in questa condizione si passa al
    RewriteRule .* - [S=1].

    E questa che cosa dice?
    Dice tralascia 1 riga [S=1] dopo questa.

    Tralasciando quindi RewriteRule .* /index_manutenzione.html [R]
    NON viene effettuato il reindirizzamento.

    Invece se NON ci troviamo nella condizione
    RewriteCond %{REMOTE_ADDR} ^xxx\.xxx\.xxx\.xxx$
    la riga RewriteRule .* - [S=1] NON viene presa in considerazione
    di conseguenza il mod_rewrite considera ed esegue
    RewriteRule .* /index_manutenzione.html.

    Sinceramente non ho provato ma dovrebbe funzionare.

  5. #5
    Ciao Marco, mi dicevi:

    Originariamente inviato da Marco Colli
    ... perchè in apparenza (ma lo dice uno poco pratico di mod_rewrite) sembra che si vada a creare un loop infinito. :master:
    Ho verificato, effettivamente qualcosa NON andava!
    Ho modificato come segue e il risultato e' proprio OK..

    RewriteEngine On
    RewriteOptions MaxRedirects=1
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/down.html [OR]
    # RewriteCond %{REMOTE_ADDR} ^192\.168\..* [OR]
    RewriteCond %{REMOTE_ADDR} ^80\.116\.82\.237$
    RewriteRule .* - [S=1]
    RewriteRule .* /down.html [R]

    La riga con il commento a me e' servita per le verifiche.

    Fammi sapere

  6. #6
    codice:
    RewriteEngine On
    RewriteOptions MaxRedirects=1
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/down.html [OR]
    # RewriteCond %{REMOTE_ADDR} ^192\.168\..* [OR]
    RewriteCond %{REMOTE_ADDR} ^80\.116\.82\.237$
    RewriteRule .* - [S=1]
    RewriteRule .* /down.html [R]
    Perfetto, funziona alla grande

    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.