• User Newbie

    redirect su pagina apposita per visitatori del sito provenienti dall'estero

    Ciao a tutti,

    spero di aver postato nel giusto forum.

    devo indirizzare gli utenti di un sito ***.it provenienti dall'estero su una pagina specifica.
    Pensavo di realizzare il tutto con il file .htaccess ma non sono sicura che sia la soluzione migliore, qno ha qualche altra soluzione più "performante"?

    Grazie


  • Admin

    Puoi farlo in tutti i modi che vuoi, ma devi gestire bene la localizzazione degli IP.


  • User Newbie

    ciao, grazie della risposta.
    Ho trovato un elenco lunghissimo di Ip Italiani (mandaz.com/lista-ip-italiani) Come faccio a sapere se è corretto?
    Ho preparato il file htaccess, ma non mi prende i range tipo "allow from 93.186.240.0-93.186.255.255".
    Devo scriverli tutti tipo:
    allow from 93.186.240.
    allow from 93.186.241.
    allow from 93.186.242.
    allow from 93.186.243.
    allow from 93.186.244.
    ......

    grazie


  • Admin

    No. Non puoi fare così. È da pazzi e non ha senso. Devi farlo in automatico e comunque non sarà mai accuratissimo.


  • User Newbie

    scusa, cosa intendi in automatico?
    So che non sarà mai accuratissimo, ma mi accontento 🙂


  • Admin

    Che secondo me dovresti usare qualche servizio di geolocalizzazione tipo http://ipinfo.io/


  • User Attivo

    Salve gettala_80,
    a mio avviso in questo caso .htaccess non mi sembra la soluzione più adatta al caso in esame per varie ragioni e le regole fin qui postate mi sembrano scelte con poco criterio, per esempio Allow e Deny si indicano per permettere o meno l'accesso alla pagina/e cartelle del sito e sembrerebbe che nel caso in questione sia richiesta

    @gettala_80 said:

    devo indirizzare gli utenti di un sito ***.it provenienti dall'estero su una pagina specifica.
    Pensavo di realizzare il tutto con il file .htaccess ma non sono sicura che sia la soluzione migliore, qno ha qualche altra soluzione più "performante"

    e poco avrebbe a che fare con la funzionalità della stessa riportate. Invece una teoricamente più corretta sarebbe questa:

    RewriteCond %{REMOTE_ADDR} !^93\.186\.240\.0$
    RewriteRule ^(.*)$ http://il-mio-dominio.gtl/pagina-dedicata.html
    

    Come noterai l'esempio ricorre alle RegEx e con studio ed esperienza potremmo semplificare il lavoro così:

    RewriteCond %{REMOTE_ADDR} !^93\.186\.2[45]\d.+$
    RewriteRule ^(.*)$ http://il-mio-dominio.tld/pagina-dedicata.html
    

    La precedente espressione regolare soddisfa il range di IP 93.186.240.0-93.186.255.255 con una sola regola. Riconosco che è una magra consolazione pensando a tutti gli IP italiani non sono quel range e ne saranno necessari molti altri perché sono deframmentati oltre al fatto che nel tempo potrebbero aggiungersi o togliersi, quindi sarebbe da mettere in conto un lavoro di aggiornamento oneroso.

    Inoltre potrebbe avere un'altra criticità: se la richiesta consiste nel mostrare solamente la pagina indicata e nessun'altra allora il problema è stato risolto, altrimenti se il sito contenesse altre pagine scritte per quella tipologia di utenti la metodologia dovrà passare al livello applicativo PHP/.NET che “ricordi” la visita di quella pagina e poi con una delle tecniche a disposizione (per esempio i cookie) permetta l'accesso alle altre.

    Riguardo la soluzione proposta da Juanin per un limitato numero di richieste è valida, l'unica criticità è che richiede una connessione HTTP/HTTPS e queste potrebbero incidere sulle performance dell'applicazione a causa delle latenze. Tra l'altro tieni presente che spesso questi servizi gratuiti sono implementati per scongiurare abusi potrebbero smettere di erogare il servizio o peggio potrebbero bannarti. Infatti se vai in fondo alla pagina troverai il link “Pricing” in cui mostra quante ne puoi fare gratis al giorno e in base alle esigenze valutare quale sia la più opportuna, eventualmente potrai fare una ricerca con San Google per trovare altri servizi.

    Buon lavoro.