17 messaggi dal 30 giugno 2007
Salve.

Ecco brevemente il mio problema. Il mio sito (con CMS) momentaneamente sputa fuori url del tipo http://www.sito.com/main.asp?id=1234

Per motivi di viario genere (richieste dall'alto dovre ) dovrei eliminare la visualizzazione del parametro, rendendo tutte le pagine visibili come http://www.sito.com/main.asp.

Come posso fare questo e al contempo riuscire ad indirizzare le varie pagine? In breve, come posso io creare dei links all'interno di mia pagina che puntano ad una pagina specifica (quella con l'id 1234)?

Si potrebbe forse trovare una soluzione per scrivere comunque l'ID nei link ipertestuali ma non farlo visualizzare nella barra indirizzi?

Accetto qualunque idea, suggerimento, genialata!

GRAZIE
koolmind ha scritto:
Per motivi di viario genere (richieste dall'alto dovre ) dovrei eliminare la visualizzazione del parametro, rendendo tutte le pagine visibili come http://www.sito.com/main.asp.


Sarebbe interessante capire i motivi di questa richiesta.
Nel senso che sarebbe abbastanza normale se tu al posto di "http://www.sito.com/main.asp?id=1234" volessi un url del tipo "http://www.sito.com/1234/main.asp" o "http://www.sito.com/1234.asp" (ad esempio per ottimizzazione per i motori di ricerca) e questo lo potresti ottenere con url rewriting (anche se con asp è un tantino più complicato che con .net)
Ma far sparire del tutto il parametro dalla query... che senso ha? Boh!

Come posso fare questo e al contempo riuscire ad indirizzare le varie pagine?


La soluzione più semplice da implementare che mi viene in mente è quella di passare il parametro in POST anziché in GET.
Questa soluzione, implementata con un po' di javascript, ti consente di modificare poco o nulla l'applicazione se non nella costruzione dei link.
Faccio un esempio per chiarire meglio (il codice è indicativo, non testato):

Quello che ora è semplicemente:
<a href="main.asp?id=1234">pagina 1234</a>


Deve diventare:
<a href="main.asp" onclick="gotoPage(1234, this.href); return false;">pagina 1234</a>


(NOTA: ricorda il "return false" nell'onclick altrimenti viene eseguito il comportamento normale del link, ovvero andare alla pagina specificata in href)

Dove "gotoPage" è una funzione javascript comune che fa una cosa di questo tipo:
function gotoPage(idValue, returnUrl)
{
    var frm = document.createElement("form");
    frm.action = returnUrl;
    frm.method = "POST";

    var id = document.createElement("input");
    id.type = "hidden";
    id.name = "id";
    id.value = idValue;
    frm.appendChild(id);

    document.body.appendChild(frm);
    frm.submit();
}


Nelle tue pagine lato server non dovrai far altro che recuperare il valore del parametro "id" da Request.Form anziché da Request.QueryString.

Si potrebbe forse trovare una soluzione per scrivere comunque l'ID nei link ipertestuali ma non farlo visualizzare nella barra indirizzi?


Tendenzialmente no. Otterresti l'effetto desiderato usando un semplice frameset ma... bleah!

HTH
Modificato da m.casati il 02 ottobre 2007 16.37 -

Matteo Casati
GURU4.net
17 messaggi dal 30 giugno 2007
Credo che alla fine ci orienteremo verso una soluzione più perfida!

Vale a dire che creeremo un "tipo news" -> totalmente invisibile e se una persona tenta di aprire un certo ID di quel tipo verrò reindirizzato ad una pagina di errore che gli impedirà di vederne il contenuto.

Tu dirai... potevi pensarci prima!
Io dirò... effettivamente potevo!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.