• User Attivo

    @kart said:

    Ho un sito con migliaia di pagine spiderate, migliaia di iscritti, una bella community iperindicizzata. Devo portare on line una serie di mega modifiche tali da impedire un passaggio soft. In due parole ho bisogno di qualcosa come 48/72h di sito completamente off line, del tipo protetto da autenticazione con password oppure consentendo l'accesso solo al mio ip.

    Che fare con i motori di ricerca? cosa è meglio per voi "fargli trovare"?

    Rispondi allo spider in una lingua che capisce: le intestazioni HTTP.

    Ce n'è una che si adatta abbastanza bene a quello che devi fare tu:

    HTTP 503 Service Unavailable

    The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. The implication is that this is a temporary condition which will be alleviated after some delay. If known, the length of the delay MAY be indicated in a Retry-After header. If no Retry-After is given, the client SHOULD handle the response as it would for a 500 response.

    Se riesci a quantificare i tempi del "rientro", specificalo nel Retry-After.

    Ovviamente, assicurati che le modifiche non creino broken link o cambi di URL. Nel caso, procedi alla solita maniera, ovvero crea per ogni pagina che cambia URL un redirect 301 dal vecchio al nuovo URL.

    Tecnicamente è tutto qua, se fai anche modifiche importanti come ai title o alla struttura dei link interni, è possibile che ci voglia un "periodo di assestamento" per dar modo ai motori di ricalcolare le variabili associate alle tue pagine.

    Ciao


  • User Attivo

    Grandissimo Petro, la 503 mi mancava 😉
    Hai anche al volo le righe da impostare nel file .htaccess per creare quel genere di response e magari invece lasciar entrare un set di ip ben preciso?
    Grazie in anticipo
    Ugo


  • User Attivo

    Integro la mia richiesta con la seguente necessità:
    ai visitatori cosa gli "faccio trovare" e come?
    grazie ancora
    Ugo


  • User Attivo

    Per la serie "si faccia una domanda e si dia una risposta" vi chiedo se è possibile inserire nel file httpd.conf qualcosa del genere:

    <VirtualHost ip.ip.ip.ip>
    DocumentRoot /var/www/miosito/
    ServerName www.miosito.it
    Redirect 503 / http://www.altrosito.it/paginachespiegatutto.html
    DirectoryIndex index.html
    </VirtualHost>

    così risolverei tutti i miei problemi meno che uno, infatti in più vorrei che il mio ip e quello dei miei collaboratori potessero accedere al vero sito col vero path per effettuare tutti i test del caso.


  • Super User

    Ciao kart,

    potresti cortesemente adattare la tua richiesta seguendo lo schema riportato qui: http://www.giorgiotave.it/forum/consigli-seo-e-penalizzazioni/34637-regole-specifiche-di-sezione.html
    nel regolamento specifico di sezione?

    Grazie mille,
    a presto 😉


  • User Attivo

    Ciao Dechigno, il nome del sito e la tecnologia in cui è sviluppato preferisco non rivelarli per non far sapere alla concorrenza che mi preparo ad un change importante e ai lamer di turno in che tecnologia è fatto il mio sito.

    Per il resto posso dirti:

    Motori: Tutti
    Prima indicizzazione o attività: 2004
    Cambiamenti effettuati: X
    Eventi legati ai link: X
    Sito realizzato: X
    Come ho aumentato la popolarità: In tutti i modi legali del mondo
    Sitemaps: si
    Url Rewrite: si
    Chiavi: X

    Dopo il go-live posso parlarne di più 😉 Spero non sia un problema, daltronde la mia richiesta prescinde dal mio sito e spero possa essere utile per molti.


  • User Attivo

    La soluzione sarebbe questa:

    rewriteCond %{REMOTE_ADDR} !^ip.ip.ip.ipp
    rewriteCond %{REQUEST_URI} !/maintenance.html$
    RewriteRule ^(.*)$ /maintenance.html [R=503,L]

    peccato che

    RewriteRule ^(.*)$ /maintenance.html [R=503,L]

    dia errore 500 internal server error e in pratica riesco a farlo funzionare solo con
    RewriteRule ^(.*)$ /maintenance.html [R=301,L]

    temo dipenda dalla mia versione di Apache 😞

    conoscete soluzioni alternative che facciano la stessa cosa?


  • User Attivo

    No, aspe, non puoi fare un redirect 503 (non dipende da Apache) perchè gli unici codici di stato che possono fare redirect lato server sono quelli della serie 3XX.

    cfr. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

    Io conosco due strade per fare quello che ti serve:

    1. hai un CMS o comunque puoi gestire con uno script l'intestazione HTTP di tutte le pagine del sito. In questo caso, controlli l'ip o una variabile segreta nella querystring per "autenticarti", e a tutti gli altri mostri una scritta di cortesia con uno status 503. In PHP:
    
    if(!$logged) {
    header("HTTP 1.1/503 Service Unavailable");
    die("Stiamo lavorando per voi");
    }
    
    1. Altrimenti, puoi intervenire su Apache, ed in assenza del prerequisito di autenticazione (che può essere ancora una volta l'ip o un parametro passato in querystring), redirigi tutti IN MODO TEMPORANEO verso la pagina di cortesia. Su questa devi impostare a mano il 503.
    
    RedirectMatch  (.*) http://sito/cortesia.htm
    
    

    Facci poi sapere com'è andata, mi raccomando 😉


  • User Attivo

    Ciao Petro, grazie per la disponibilità innanzitutto!

    Allora, la prima soluzione è quella che mi piace di più, l'ho provata così:

    if ($_SERVER['REMOTE_ADDR'] != "mio.ip.mio.ip")
    {
    header("HTTP 1.1/503 Service Unavailable");
    die("Stiamo lavorando per voi");
    }

    e il risultato è quello desiderato, io vedo il sito e gli altri vedono la scritta "Stiamo lavorando per voi". Peccato solo che testando gli header ad esempio con:
    http://www.thinkhost.com/services/generators/headers-check.shtml
    mi dia:

    HTTP/1.1 200 OK 😞

    e anche con altri tool dà lo stesso risultato 😞

    ti è mai capitato?


  • User Attivo

    ok Petro, risolto, la sintassi giusta è:

    if ($_SERVER['REMOTE_ADDR'] != "mio.ip.mio.ip")
    {
    header("HTTP/1.1 503");
    die("Stiamo lavorando per voi");
    }

    grandissimo!!!! 😉

    Vi farò assolutamente sapere com'è andata, oltretutto vi siete meritati una citazione con la case history e iper menzione di merito nel mio blog (www.ugogiaquinto.com) non appena tutto sarà finito.