Newsgroup: it.comp.www.html
Titolo: Help: URL redirecting

Help: URL redirecting
Salve
Questa mia domanda fa parte di una serie piu' vasta esposta
in un altro post (sui domini di III livello).
Ora vediamo com'e' possibile fare un semplice redirecct ad una URL.
Il problema tecnico e' questo: io ho una URL con un nome lungo e brutto:
http://www.nomelungo.com/directory/sottodirectory/5032/
Poi ho una URL col nome breve e bello:
http://www.nomebreve.com
Ebbene, voglio che l'utente, chiamando 
www.nomebreve.com
 ,
acceda in realta' a: 
www.nomelungo.com/directory/sottodirectory/5032/
Un modo molto semplice e' inserire nella pagina principale
di 
www.nomebreve.com
 un semplice tag HTML:
<META HTTP-EQUIV="Refresh" CONTENT="0;
 URL=
http://www.nomelungo.com/directory/sottodirectory/5032/
">
(merito a Valerio Granato di 
www.livenet.it
 per avermi segnalato
questa possibilita').
Notare che ho posto il valore uguale a zero affinche' il trasferimento
sia immediato.
Il difetto di questa (pur semplice) soluzione e' che l'utente
vedra' sul suo browser la destinazione finale:
www.nomelungo.com/directory/sottodirectory/5032/
mentre sarebbe opportuno che continuasse a vedere
www.nomebreve.com
A tal proposito si puo' risolvere tutto con un frame invisibile.
Non ho provato a farlo io personalmente, ma ho visto dei siti
in cui evidentemente sono stati usati dei frame invisibili:
per esempio  
http://ipotesi.to.web.gl
  (sito reale)
Nella pagina principale c'e' un frame invisibile che rimanda
ad un altro indirizzo molto piu' lungo.
Sul browser l'utente vedra' sempre  
www.nomebreve.com
  .
Il guaio e' che lo vedra'... sempre, anche se l'utente cambia
pagina all'interno del sito! In pratica, se l'utente (tramite
un link interno che preme) passa dalla pagina
www.nomelungo.com/directory/sottodirectory/5032/index.htm
alla pagina
www.nomelungo.com/directory/sottodirectory/5032/altrapag.htm
il link funzionera' perfettamente, ma il browser dell'utente
continuera' a visualizzare  
www.nomebreve.com
  .
SAREBBE OPPORTUNA LA SOLUZIONE INTERMEDIA:
cioe', nel caso appena visto adesso,
il browser dovrebbe passare da
www.nomebreve.com/index.htm
a
www.nomebreve.com/altrapag.htm
Cioe' prende il nome della pagina effettiva,
ma tutto il resto dell'indirizzo lungo viene mascherato e
tradotto in  
www.nomebreve.com
  !
E' possibile questo?! Credo proprio di si', credo che
sia cio' che fanno siti come  
http://there.is/vattelapesca
Ebbene, come e' possibile fare questo tipo di redirecting "intelligente"?
E' possibile farlo con un semplice script HTML o ci vuole
qualcosa di piu' furbo?
GRAZIE
Fabrizio
amo...@iname.com



Potresti aprire una nuova finestra senza la location (consì l'indirizzo
brutto e bello è sempre nascosto) per gli utenti dei browser generazione
3.x+ (la stragrande maggioranza).
<script language="JavaScript">
window.open("URL", "nomeFinestra", "toolbar=no, location=no, directories=no,
status=yes, menubar=no, scrollbars=yes, resizable=yes, width=pixel,
height=pixel")
</script>
Oppure una cosa più complicata, dove però devi coinvolgere la gente con
l'indirizzo brutto:
Nelle loro pagine, devono richiamare una funzione nel frame nascosto quando
la pagina viene abbandonata.
<body onUnload="parent.controllo()"  ...>
e nel tuo frame nascosto implementare la funzione:
<script language="JavaScript">
<!--
function controllo()
{
    window.setTimeout("controllo2()", 5000)
}
function controllo2()
{
    if(frames[0].location.href.indexOf("URL o parte di URL") == -1)
        location.href = frames[0].location.href
}
//-->
</script>
Un po' complicato ... :)
ho messo un delay con setTimeout(), perché non sono sicuro che quando si
chiami l'onUnload, l'indirizzo brutto della pagina sia già variato.
L'ideale sarebbe che i tuoi utenti avesso tutti una pagina con frame, in
modo che la chiamata onUnload() fatta da <frameset> sia sicuramente dovuta
all'abbandono del sito (altrimenti bisogna fare un controllo come quello
sopra).
CIAO :)