PDA

View Full Version : Redirect se risorsa non disponibile.


ChristianX86
31-08-2010, 19:24
Ciao a tutti, ho una richiesta da farvi perche io non ne vado fuori :mbe:

praticamente devo fare in modo di "testare" il funzionamento di un link, e se disponibile la navigazione continuerà normalmente su questo link altrimenti, se la risorsa non è disponibile viene caricata un altra pagina. :D

Mixmar
31-08-2010, 21:54
Ciao a tutti, ho una richiesta da farvi perche io non ne vado fuori :mbe:

praticamente devo fare in modo di "testare" il funzionamento di un link, e se disponibile la navigazione continuerà normalmente su questo link altrimenti, se la risorsa non è disponibile viene caricata un altra pagina. :D

Dovresti dirci in che linguaggio / ambiente / sistema operativo stai sviluppando, così ci sono troppe possibilità :confused:

ChristianX86
01-09-2010, 07:26
la pagina "normale" cioè da testare è tenuta su un server ubuntu, con LAMP, mentre la pagina che deve testare la funzionalità della prima deve essere ospitata su un altro server, non è importante il linguaggio, basta che faccia quel lavoro :D

ChristianX86
01-09-2010, 15:45
up :cry:

Mixmar
02-09-2010, 22:29
Così, a spanne, direi che potresti provare (nel codice) a collegarti alla pagina, e se non ci riesci (se ritorna un errore), proseguire con l'altro link. Puoi farlo anche in Javascript sul client, se vuoi. Ti andrebbe bene così?

ChristianX86
03-09-2010, 07:25
si andrebbe benissimo... avresti un esempio perche di java ancora non ne capisco molto...

vladix
03-09-2010, 08:39
si andrebbe benissimo... avresti un esempio perche di java ancora non ne capisco molto...

giusto perchè tiri in ballo java :
dovresti aggiungere questo codice nel web.xml della tua applicazione:

<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>


javascript non lo utilizzerei perchè non funzionerebbe se l'utente digita l'url nel broswer.
Altrimenti dovresti gestirlo lato server ( configurare il server ... ) se hai un server dedicato :p

nuovoUtente86
03-09-2010, 10:51
giusto perchè tiri in ballo java :
dovresti aggiungere questo codice nel web.xml della tua applicazione:

<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>


javascript non lo utilizzerei perchè non funzionerebbe se l'utente digita l'url nel broswer.
Altrimenti dovresti gestirlo lato server ( configurare il server ... ) se hai un server dedicato :p

Dubito cosi possa funzionare, in quanto l' errore verrebbe prodotto da una pagina ospitata su un server esterno, per cui fuori dallo scope dell' application server (Java o altro). L' unico modo è lavorare lato client (o in alternativa wrappare il link in una risorsa ospitata sul proprio server)

vladix
03-09-2010, 11:07
Dubito cosi possa funzionare, in quanto l' errore verrebbe prodotto da una pagina ospitata su un server esterno, per cui fuori dallo scope dell' application server (Java o altro). L' unico modo è lavorare lato client (o in alternativa wrappare il link in una risorsa ospitata sul proprio server)

non avevo capito che doveva chiamare un link esterno :fagiano:.
Cmq mi sembra una cavolata. Io controllerei il link quando l'utente richiede la pagina che lo contiene, e non lo metterei nella pagina (a che serve un link non funzionante ? :mbe: ) ...

Gremo
03-09-2010, 11:25
Mah...se i link sono esterni al server non è che hai molte alternative se non appunto qualcosa in javascript, anche se poi può essere disabilitato...

Ma i link sono presi da un database, generati dinamicamente? Se si, allora la soluzione è semplice, ma in caso di centinaia di link sarebbe probabilmente un pò lento...

ChristianX86
03-09-2010, 12:58
forse non mi sono spiegato bene :D allora facciamo un esempio:

io ho un server in casa ospitante un sito, questo sito viene backuppato ogni settimana in un server esterno (diciamo un account di altervista per esempio), quest'ultimo account ospita anche l'index del tutto.

quindi se io digito il dominio del sito la prima pagina che apre (ospitata sull'account di altervista) è quella che deve testare se il server a casa mia è raggiungibile. se è raggiungibile ok e continua redirectandomi sul server a casa, altrimento mi redirecta alla copia del sito.

DanieleC88
03-09-2010, 13:23
forse non mi sono spiegato bene :D allora facciamo un esempio:

io ho un server in casa ospitante un sito, questo sito viene backuppato ogni settimana in un server esterno (diciamo un account di altervista per esempio), quest'ultimo account ospita anche l'index del tutto.

quindi se io digito il dominio del sito la prima pagina che apre (ospitata sull'account di altervista) è quella che deve testare se il server a casa mia è raggiungibile. se è raggiungibile ok e continua redirectandomi sul server a casa, altrimento mi redirecta alla copia del sito.

Supponendo PHP:
http://docstore.mik.ua/orelly/webprog/pcook/ch17_11.htm

ChristianX86
03-09-2010, 16:37
risolto :D

nuovoUtente86
03-09-2010, 16:43
risolto :D

Non so come tu abbia risolto, ma l' utilizzo del solo ping come strumento "diagnostico" è poco affidabile sia in un senso che altro.

tomminno
03-09-2010, 17:05
Non so come tu abbia risolto, ma l' utilizzo del solo ping come strumento "diagnostico" è poco affidabile sia in un senso che altro.

Ci vorrebbe una richiesta http e conseguente analisi del codice di ritorno per essere un minimo affidabili

ChristianX86
03-09-2010, 17:14
senza usare controlli esorbitanti ho fatto in modo di controllare se un piccolo file ospitato sul mio server è raggiungibile, in caso di "onload" la navigazione procederà normalmente, in caso di "onerror" si viene dirottati su un altra pagina.

DanieleC88
03-09-2010, 18:03
Ci vorrebbe una richiesta http e conseguente analisi del codice di ritorno per essere un minimo affidabili
L'idea di fondo rimane sempre la stessa, un "ping" è solo un'assicurazione sulla raggiungibilità dell'host di destinazione e non sull'effettiva disponibilità di un servizio HTTP. Basta usare un fopen() (oppure un file_get_contents(), se vuoi anche parsare la risposta...) e controllare che la "apertura" vada a buon fine.
Ma serve tutta 'sta fatica? :)

ChristianX86
03-09-2010, 18:06
infatti io ho risolto in un modo ancora piu veloce:D